Как откатить только один шаг с помощью rake db: migrate

после добавления файлов миграции в и под управлением rake db:migrate, Я хочу вернуться к предыдущему шагу, я думаю, используя VERSION=n - это правильный способ сделать это, но я не знаю правильного значения n, чтобы использовать. Есть ли команда для проверки текущего значения n?

было бы здорово, если бы кто-нибудь мог предоставить полные инструкции по использованию rake db:migrate.

5 ответов


для начала

rake db:rollback вернет вас на один шаг

затем

rake db:rollback STEP=n

откатит вас назад n миграция, где n - это количество последних миграций, которые вы хотите откатить.


откат последней миграции:

rake db:rollback

откат n последние переносы:

rake db:rollback STEP=n

вы можете найти полные инструкции по использованию задач миграции Rails для грабель на направляющие рельсы для запуска миграции.


вот еще:

  • rake db:migrate - запустите все миграции, которые еще не были запущены
  • rake db:migrate VERSION=20080906120000 - выполнить все необходимые перемещения (вверх или вниз) чтобы добраться до данной версии
  • rake db:migrate RAILS_ENV=test - выполнить миграцию в данной среде
  • rake db:migrate:redo - откатите одну миграцию и запустите ее снова
  • rake db:migrate:redo STEP=n - откат последнего n миграции и запустить их снова
  • rake db:migrate:up VERSION=20080906120000 запустить up метод для данной миграции
  • rake db:migrate:down VERSION=20080906120000 запустить down метод для данной миграции

и отвечая на ваш вопрос о том, где вы получить номер версии миграции из:

версия является числовым префиксом в имени файла миграции. Для например, для перехода на версию 20080906120000 запустите

$ rake db:migrate VERSION=20080906120000

(от Запуск Миграций в направляющих рельсов)


лучший способ снова запустить определенную миграцию, используя down или up (в rails 4. Это изменение)

rails db: migrate: up VERSION=отметка времени

теперь, как вы получите дату. Идите по этому пути

/ db / migrate

определите файл миграции, который вы хотите вернуть.выберите метку времени из этого имени файла.


другие люди уже ответили вам, как откат, но вы также спросили, как вы можете определить номер версии миграции.

  • rake db:migrate:status дает список ваших версий миграции, имя и статус (вверх или вниз)
  • вы также можете найти миграционной файл, который содержит метку времени в имени файла, то есть номер версии. Миграции расположены в папке:/db/migrate

Если версия 20150616132425, а затем использовать:

rails db:migrate:down VERSION=20150616132425