Файл миграции
-- vesnova: 0007_add_orders_status
-- up
alter table orders add column status text not null default 'new';
create index orders_status_idx on orders (status);
-- down
drop index orders_status_idx;
alter table orders drop column status;
Файл именуется NNNN_короткое_имя.sql. Блоки разделяются
маркерами -- up и -- down; оба обязательны.
Порядок применения
Веснова применяет миграции строго по возрастанию номера и требует, чтобы журнал был непрерывным: «дырки» и параллельные ветки считаются ошибкой состояния и блокируют применение до ручного разбора.
Внимание. Перенумерация уже применённых миграций —
прямая дорога к рассинхрону. Новую миграцию всегда создавайте следующим номером.
Журнал
Таблица vesnova_journal: номер, контрольная сумма файла, время
применения, длительность. Контрольная сумма защищает от правки уже применённого
файла — при несовпадении инструмент останавливается с явной ошибкой.