При создании сценария миграции есть ли способ запустить сценарий таким образом, чтобы, если он не работает, запись миграции в базе данных не была записана?
Недавний пример, с которым я столкнулся, - это попытка добавить уникальный индекс в таблицу, в которой есть данные, которые не будут работать с уникальным индексом. Сценарий не выполнен, но запись в таблицу истории миграции все еще добавлена.
Я подумал, что решением может быть добавление транзакции вокруг всего сценария, но я не видел примеров того, как другие разработчики делали что-то подобное, что, вероятно, означает, что это не лучший способ сделать это.
Есть ли лучшая практика вокруг этого? У доктора не было много информации о том, как оправиться от неудачных миграций.