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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions