Как откатиться всего на один шаг с помощью rake db: migrate - PullRequest
176 голосов
/ 04 декабря 2010

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

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

Ответы [ 5 ]

322 голосов
/ 04 декабря 2010

Для начала

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

, затем

rake db:rollback STEP=n

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

Больше ссылок здесь .

84 голосов
/ 14 января 2014

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

rake db:rollback

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

rake db:rollback STEP=n

Полные инструкции по использованию задач миграции Rails для rake можно найти в Руководство по 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

Запуск миграций в направляющих Rails)

7 голосов
/ 10 мая 2015

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

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

Теперь, как вы получаете метку времени. Перейти по этому пути

/ дб / мигрирует

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

1 голос
/ 25 июля 2018

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

rails db:migrate:down VERSION=20150616132425
1 голос
/ 20 октября 2017

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

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