2013-11-21 2 views
0

У меня есть грабли миграции и генерации всех таблиц.Rails rake заданный файл миграции

Теперь я хочу, чтобы изменить таблицу, но я не хочу ворошить изменения migrate.I просто хотите удалить таблицу и выполнить команду еще раз:

rake db:migrate 

Но ничего не произошло.

Так что я хочу знать, что мне делать, когда я рейк для создания новой таблицы после удаления таблицы?

ответ

1

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

rake db:migrate:down VERSION=201311211234 

Затем сделайте изменения на этой миграции файл

то вобще

rake db:migrate:up VERSION=201311211234 

Второй вариант заключается в удалении строки для версии 201311211234 от schema_migrations таблицы, а затем запустить rake db:migrate

1

Если вы работаете изменения, вы должны использовать:

rake db:rollback 
... make changes ... 
rake db:migrate 

Чтобы исправить это сейчас вам придется удалить последнюю запись в вашем schema_migrations таблице (так как вы не запускали откат я угадывание) ,

1
rake db:migrate 

Обновляется файл схемы. Когда вы пишете файлы миграции, обязательно введите код в self.down. Поэтому, когда вы запускаете rake db:rollback, выполняются приведенные ниже команды. Вы можете изменить файл схемы вручную, чтобы исправить эту проблему.

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

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