Используйте журнал применённых миграций и блокировку, исключающую одновременное выполнение несколькими процессами.
Как обеспечить, чтобы миграции запускались только один раз (не повторно при каждом деплое)?
Используйте журнал применённых миграций и блокировку, исключающую одновременное выполнение несколькими процессами.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Используйте журнал применённых миграций и блокировку, исключающую одновременное выполнение несколькими процессами.
При каждом деплое runner может запускаться, но выполняет только ещё не применённые версии. Запись результата и изменение схемы делают согласованными с возможностями СУБД. Для нетранзакционных операций нужна безопасная обработка частичного сбоя; один Kubernetes Job без журнала недостаточен.