Skip to content

Перенос обработанных таблиц на 1-й уровень #206

@Kraysent

Description

@Kraysent

В рамках #194 был сделан метод обработки таблиц. Теперь обработанные данные нужно перенести на таблицы первого уровня. Первым приоритетом нужно переносить каталог координат и каталог имён.

Это включает в себя метод (обсуждавшийся в дискуссии https://github.com/orgs/HyperLEDA/discussions/171) POST /api/v1/admin/table/status:

{
    "table_id": 12345,
    "overrides": [
        { // этому объекту будет явным образом присвоен pgc-номер 123456, вне зависимости от того, существует объект с pgc-номером 123456 уже или нет.
            "id": "2d6afe64-d9a2-441c-8896-6eac9279da2a", // hyperleda_internal_id, будет отдаваться в GET /api/v1/table/status
            "pgc": 123456
        },
        { // этому объекту будет присвоен следующий свободный pgc-номер.
            "id": "433894c5-e1f1-4b72-a51e-c7eb00bfe7a5"
        }
    ]
}

Этот метод будет делать примерно следующее:

  • Батчами по batch_size объектов для всех объектов из rawdata.objects:
    • Применяет присланные оверрайды - если в оверрайде не указан pgc, то присваивает объекту явным образом статус new. Если прислан, то присваивает явным образом статус existing и указанный pgc.
    • Для всех объектов со статусом new присвоить новые pgc-номера, вставить их в реестр объектов (таблица common.pgc) и переносить на первый уровень (что это значит - дальше).
    • Для всех объектов со статусом existing - создаёт вне несуществующие pgc (такое может случиться только если pgc был указан в качестве оверрайда), переносит все объекты на первый уровень.

Объекты в статусе collided будут игнорироваться (кроме тех, что указаны в секции overrides).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions