рельсы откатывают миграцию постоянно, а затем разветвляются

Это вопрос рельсов о версиях миграции

Итак, у меня уже есть несколько миграций. то есть в моей папке db / migrate / у меня есть такие файлы:

  • 1_add_products.rb
  • 2_add_customers.rb
  • 3_add_addresses.rb
  • 4_add_tags.rb

и я запустил "rake db: migrate", поэтому текущая версия - 4. Я хочу навсегда вернуться к версии 2 и начать оттуда ветвление. Итак, я сделал «rake db: migrate VERSION = 2», и это вернуло изменения правильно, чтобы отразить версию 2. Однако, когда я сейчас запускаю «rake db: migrate», он запускает все 4 миграции и возвращает меня к версии 4. .

Есть ли способ навсегда вернуться к одной ревизии, а затем начать новое ветвление оттуда? Могу ли я просто удалить миграцию 3 и 4 после отката до версии 2?

Причина, по которой я спрашиваю, заключается в том, что после отката к версии 2 мне нужно добавить новые миграции и запустить «rake db: migrate», и я определенно не хочу, чтобы были включены миграции 3 и 4.


person dzt    schedule 14.07.2010    source источник


Ответы (1)


Удаление должно работать нормально. Просто убедитесь, что у вас есть откат ВЕЗДЕ (разработка, постановка, производство), иначе вы столкнетесь с некоторыми странными проблемами.

И да, обязательно откатитесь ТОГДА удалите, иначе ваша база данных будет думать, что она находится в состоянии, которого на самом деле не существует.

person Jamie Wong    schedule 14.07.2010