Запустите одиночную миграцию (не самую новую) в Yii

У меня мало файлов миграций. Как мне выполнить одиночную миграцию вниз или вверх, если эта миграция не самая новая, а какие-то шаги в истории миграций?

Когда я запускаю yiic migrate up 1, выполняется последняя миграция. Запуск команды миграции с использованием версии миграции в качестве параметра также не помогает.


person Thomas    schedule 22.02.2014    source источник


Ответы (1)


Пожалуйста, ознакомьтесь с документацией по разделу redoing-migrations:

yiic migrate redo [step]

Если вы хотите отменить/повторить только одну конкретную миграцию в истории миграции. Вам необходимо изменить свою историю миграции. :

yiic migrate mark 101129_185401
yiic migrate redo
person phemios    schedule 22.02.2014
comment
Но я хочу вернуться и применить только что указанную миграцию, а не первую последнюю или 3 последних - person Thomas; 22.02.2014
comment
Хорошо, я понимаю вашу точку зрения. Я бы сделал yiic migrate mark idOfMyMigration, чтобы перейти к нужной миграции, после чего я смог бы выполнить миграцию вверх/вниз, начиная с миграции, которую я хочу. - person phemios; 22.02.2014
comment
Это установит отметку истории в заданную точку и действительно повторит только одну конкретную миграцию. Но выполнение yiic migrate заставит YiiC попытаться выполнить все миграции с данной метки, вплоть до самой новой. Нужно не забыть сбросить отметку истории на новейшую миграцию после повторного выполнения этой конкретной миграции. - person trejder; 20.11.2014
comment
Похоже, правильный синтаксис в 2020 году — yii migrate/mark 101129_185401 (обратите внимание на /). - person Bruno Leveque; 08.07.2020