Да, вы идентифицировали случаи, когда вы теряете данные, либо преобразовывая их, либо просто УДАЛЯЙТЕ КОЛОННУ в миграции "вверх".
Другим примером является то, что вы можете удалить объект SEQUENCE, тем самым потеряв его состояние. Миграция «вниз» воссоздает последовательность, но она начинается заново с 1. Это может привести к тому, что последовательность будет генерировать повторяющиеся значения. Не проблема, если вы выполняете миграцию на пустую базу данных и хотите, чтобы последовательность все равно начиналась с 1, но если у вас есть некоторое количество строк данных, вы хотите, чтобы последовательность была сброшена до наибольшего значения используется в настоящее время, что трудно сделать надежно, если только у вас нет эксклюзивной блокировки на этой таблице.
Любой другой DDL, который зависит от состояния данных в базе данных, имеет аналогичные проблемы. Во-первых, это, вероятно, не очень хороший дизайн схемы, я просто пытаюсь придумать случаи, которые соответствуют вашему вопросу.