Приятная новость для всех, кто использует или присматривается к PHP-фреймворку Yii. Готова ожидаемая многими возможность — миграции.
Миграции очень важны для командной разработки, когда постоянно меняется не только код, но и структура базы данных. Чтобы каждый не применял руками изменения остальных членов команды и существуют миграции.
Как происходит типичная работа с миграциями?
Разработчик Андрей создаёт миграцию
Идёт в protected/migrations и наполняет её полезным кодом:
Тут можно использовать совершенно любой код, например, зачистить кеш или assets.
Далее Андрей как-то передаёт миграцию Ивану. Через SVN, почтой или по FTP — не важно (лучше, конечно, через систему контроля версий). Иван применяет миграцию:
и спокойно работает с новым кодом.
Более подробное описание на русском будет на yiiframework.ru в ближайшее время (ну или, в крайнем случае, перед релизом).
Миграции будут включены в следующий релиз Yii, а пока можно поиграться с trunk-ом. Синтаксис может незначительно поменяться до релиза.
Миграции очень важны для командной разработки, когда постоянно меняется не только код, но и структура базы данных. Чтобы каждый не применял руками изменения остальных членов команды и существуют миграции.
Как происходит типичная работа с миграциями?
Разработчик Андрей создаёт миграцию
yiic migrate create --name=create_news_table
Идёт в protected/migrations и наполняет её полезным кодом:
class m20101129185401_create_news_table extends CDbMigration { public function up(){ $this->createTable('tbl_news', array( 'id' => 'pk', 'title' => 'string NOT NULL', 'content' => 'text', )); } /* public function down(){ } */ }
Тут можно использовать совершенно любой код, например, зачистить кеш или assets.
Далее Андрей как-то передаёт миграцию Ивану. Через SVN, почтой или по FTP — не важно (лучше, конечно, через систему контроля версий). Иван применяет миграцию:
yiic migrate up
и спокойно работает с новым кодом.
Более подробное описание на русском будет на yiiframework.ru в ближайшее время (ну или, в крайнем случае, перед релизом).
Миграции будут включены в следующий релиз Yii, а пока можно поиграться с trunk-ом. Синтаксис может незначительно поменяться до релиза.