0

Один из моих файлов миграции ссылается на другую таблицу/модель, которая будет создаваться дальше по последовательности миграции.Изменить временную метку на файлы миграции

Postgres не нравится:

PG::UndefinedTable: ERROR: relation "users" does not exist

Так мне интересно, если есть какие-либо потенциальные проблемы вручную изменить порядок файлов миграции (изобретая новые временные метки/префиксы)?

Поврежденные таблицы уже перенесены.

ответ

2

Когда вы запустите команду rake db:migrate, она сравнивает таблицы schema_migrations таблицы и миграции, расположенные в папке db/migrate. Все миграции, которые не были выполнены, затем принимают MigrationClass#up.

Итак, начиная с момента, когда ваш код уже опубликован и/или миграции выполняются другими пользователями, изменение временных меток/имен миграции может привести к необработанной процедуре миграции (поскольку schema_migrations будет обрабатывать миграцию с измененной меткой времени как новую, необработанный, и попробуйте обработать его «снова»). Возможным обходным путем для этого было бы некоторое время прокомментировать содержимое метода up и раскомментировать его после завершения миграции. Для удовольствия вы также можете манипулировать таблицей schema_migrations непосредственно с вашей консоли db (добавление или удаление необходимых записей). Оба эти пути пахнут как хак.

До тех пор ... Все должно работать безупречно.

Смежные вопросы