Миграции Rails - ищите изменения в старых миграциях? - PullRequest
1 голос
/ 05 августа 2010

Если у меня есть две миграции, mig1 и mig2, я запускаю rake db: migrate, затем я возвращаюсь к mig1 и изменяю значение столбца по умолчанию, будет ли это изменение отражено при повторном запуске rake db: migrate? Или мне нужно выполнить новую миграцию только для этого столбца, чтобы внести изменения?

Ответы [ 3 ]

2 голосов
/ 06 августа 2010

Вы можете повторить заданную версию, выполнив следующее:

rake db:migrate:down VERSION=___________

rake db:migrate:up VERSION=____________
1 голос
/ 05 августа 2010

Вы должны либо выполнить новую миграцию, либо использовать задачу rake db:rollback, чтобы вернуться к версии вашей базы данных, прежде чем будет выполнена соответствующая миграция. Изменения в сценариях миграции не будут приниматься автоматически.

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

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

0 голосов
/ 30 декабря 2010

рейк дБ: мигрировать: повторить ВЕРСИЯ = _ __ _

...