2013-12-03 2 views
0

Я использую миграции в cakephp, чтобы отслеживать изменения в моей базе данных. Предположим, что я создаю поле в таблице в базе данных, а потом понимаю, что мне действительно не понадобится это поле. Как поместить таблицу в ее предыдущее состояние (состояние, когда я не добавил столбец), используя миграции. Я вижу, что есть некоторые функции up и down в классе CakeMigration, но я понятия не имею, как их использовать.cakephp migages database rollback

Спасибо

ответ

1

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

Надеюсь, вы знакомы с основами использования плагина Migrations. Если да, то вы можете просто удалить столбец из базы данных с помощью выбранного инструмента управления базами данных, а затем создать новую миграцию:

path/to/app/Console/cake Migrations.migration generate 

А затем выбрать опцию «сравнить с базой данных». Cake подберет тот факт, что столбец удален, и автоматически генерирует правильный код в массивах up и down.

Обратите внимание: это означает, что для создания столбца вам потребуется одна миграция, а затем другая, чтобы удалить тот же столбец. Сначала это кажется немного беспорядочным, но не волнуйтесь ... это лучший способ.