Комментарии 2
Самое любопытное, что оба инцидента породил не сам рефакторинг, а уборка после него, тот самый contract-шаг, на который обычно не закладывают время.
Где же тут "уборка после"? Именно ALTER TABLE ... DROP COLUMN тут является ломающим изменением, и ошибка заключалась в том, что предварительный перелив данных и синхронизация приняты за основное изменение. И даже написание статьи не изменило взгляд разработчиков на суть произошедшего.
Справедливо) Уборка это неудачное слово: contract-шаг (DROP COLUMN) и есть настоящее ломающее изменение, тут да. Я назвал его так потому, что команды часто к нему так и относятся, как к финальной зачистке, на которую не закладывают ни времени, ни внимания. В этом и ловушка: главным считают expand, а ломает как раз «уборка». Мы про одно и то же)

Переименовал две колонки и поймал два инцидента