Похоже, вам нужна хорошая стратегия ветвления и слияния.Если вы используете что-то вроде Git или SVN, то что-либо на master или trunk, соответственно, должно быть готового к производству качества.Если вы сталкиваетесь с ситуациями, когда AbcController
хорош и готов к работе, но XyzController
ненадежен, то XyzController
, вероятно, нуждается в дополнительном тестировании и еще не должен быть в мастере.
Миграции в рельсах также следуют этой политике, что приводит к вашей структуре данных.Если вы думаете, что готовы к производству, в вашей базе данных не должно быть значительных изменений.Возможно, вам нужно добавить столбец или функцию, но вы должны хорошо пройти рефакторинг базы данных оптом.
Наконец, загрузка / обновление данных - это боль в любой ситуации миграции.По моему опыту, это включает в себя написание SQL-скриптов для выполнения шагов или обновление базы данных для некоторых новых функций.Эти сценарии SQL также должны находиться под вашим контролем исходного кода.Rails может сделать это проще, написав ваши скрипты миграции в самом файле миграции.В зависимости от конкретной ситуации это может сработать.