vesnova schema-check сравнивает ожидания следующей миграции с
фактической схемой базы и печатает отчёт без применения изменений.
Что проверяется
- существование объектов, на которые ссылается
up; - конфликты имён с уже существующими таблицами, индексами, колонками;
- неявные потери данных: drop колонки/таблицы с данными;
- соответствие журнала факту (миграция в журнале, но объекта нет — и наоборот).
Режимы
| Режим | Поведение |
|---|---|
--report | только текстовый отчёт (по умолчанию) |
--strict | ненулевой код возврата при любых warning'ах — для CI |
--target NNNN | проверить цепочку до указанной миграции |
Пример отчёта
$ vesnova schema-check
[ok] 0007_add_orders_status: таблица orders существует
[warn] 0007_add_orders_status: колонка orders.status уже существует (patched вручную?)
[fail] 0008_backfill_status: таблица archive_orders отсутствует
итог: 1 fail, 1 warn — применение заблокировано