Skip to content

Миграция данных при пересоздании таблиц с полями типа serial #164

@RRanger11

Description

@RRanger11

При обновлении таблиц с полями типа serial и включенной опции "Мигрировать данные при пересоздании таблиц", скрипт миграции ломается на удалении привязанной к таблице sequence (строка 12 в приведенном примере)

2025-11-24 09'32'57 migration for devel.sql

и в результате получаем неработоспособную базу данных, нужной таблицы нет, повторная попытка провести обновление безвозвратно удаляет временную таблицу с нужными данными.

Как решение, возможно стоит вместо:
DROP SEQUENCE public.period_rid_seq;

использовать:
ALTER SEQUENCE public.period_rid_seq RENAME TO period_rid_seq_xxxxx;

И поскольку для обновленной таблицы создаётся новая sequence, желательно после вставки данных в новую таблицу обновить счетчик последовательности, например:
SELECT setval('public.period_rid_seq', (SELECT MAX(rid) FROM public.period));

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions