2013-04-16 3 views
0

Есть ли возможность запуска миграции по одному?рельсы миграции один за другим

У меня есть куча файлов миграции, и вся миграция выполняется без проблем на моей локальной машине (которая использует PostgreSQL).

Когда я развертываю (сервер использует MySQL), вся миграция не удалась.

Поэтому я хотел бы сбросить базу данных и выполнить миграцию один за другим, чтобы увидеть, где возникает несогласованность.

P.S. Проблема, по-видимому, связана с плюрализацией: сценарий не может отбросить столбец order_id из таблицы NNN, которая на самом деле содержит orders_id.

ответ

6

Рельсы 3.0 введен rake db:forward, который принимает параметр STEP:

rake db:forward STEP=1 
+0

Эта команда является именно тем, что мне нужно, но когда я ее печатаю (с разными значениями параметра STEP paramater), у меня нет вывода, и таблица не создается. Я использую Rails 3.2.13, и один из первых миграций 20130304080313_create_items.rb 20130304080838_create_orders.rb Первый из них, содержит, например класса CreateItems Andrew

+1

Это указывает на то, что нет никаких выдающихся миграции, то есть ваша база данных до встретиться. Вы можете проверить статус с помощью 'rake db: migrate: status' – Stefan

0

Бег миграций по одному можно передать параметр STEP=number.

rake db:forward STEP=1 # edited as per Stefan's suggestion 
rake db:rollback STEP=1 
+0

' rake db: migrate', кажется, игнорирует аргумент 'STEP'. – Stefan

+0

Вы правы, 'rake db: migrate' принимает только аргумент' VERSION = 2013 ..... '. 'rake db: forward' был бы более удобным в этом случае. Большое спасибо! –

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