Миграция, которая удалила таблицу, которую хотела переименовать.
Миграция прошла чисто на стейджинге. На стейджинге было 12 строк. В проде было 2,3 миллиона.
Сгенерированная миграция сделала drop-and-recreate вместо alter in place. На стейджинге потеря данных была невидимой. В проде это была таблица клиентов. Бэкапу было 26 часов.
Урок не в том, чтобы «проверять миграции». Суть в том: стейджинг, не совпадающий по форме с продом, не тестирует ничего. Агент этого не знал. Человек был обязан знать.