Sobes.tech
Back to questions
Middle
3

Что случилось с базой? Накатились миграции. База в изменённом состоянии — как понять что произошло и как реанимировать?

Companies where asked
Evrone

Answer from AI

sobes.tech AI

Если после наката миграций база данных оказалась в изменённом состоянии, и нужно понять, что произошло и как восстановить:

  1. Понять, что именно изменилось:

    • Проверьте логи миграций (например, Flyway или Liquibase) — какие скрипты были применены.
    • Сравните текущую схему с ожидаемой (например, с помощью инструментов сравнения схем).
    • Посмотрите таблицы, которые отвечают за версию миграций (например, flyway_schema_history), чтобы понять, какие миграции были применены.
  2. Анализ последствий:

    • Если миграции изменили структуру данных (удалили колонки, таблицы), возможно, данные потеряны.
    • Если миграции добавили новые ограничения или индексы, проверьте, не вызвало ли это ошибок.
  3. Реанимация базы:

    • Если есть резервные копии — восстановите базу из бэкапа.
    • Если миграции были ошибочными, попробуйте откатить их (если миграции поддерживают откат).
    • Восстановите данные вручную, если возможно.
    • Исправьте миграционные скрипты и примените их заново на тестовой среде.
  4. Профилактика:

    • Внедрите процесс тестирования миграций на тестовой базе перед продакшеном.
    • Используйте транзакции в миграциях, если СУБД поддерживает.

Таким образом, сначала нужно собрать информацию о применённых миграциях и их эффекте, затем принять решение о восстановлении из бэкапа или исправлении миграций.