Приятная новость для всех, кто использует или присматривается к PHP-фреймворку Yii. Готова ожидаемая многими возможность — миграции.
Миграции очень важны для командной разработки, когда постоянно меняется не только код, но и структура базы данных. Чтобы каждый не применял руками изменения остальных членов команды и существуют миграции.
Как происходит типичная работа с миграциями?
Разработчик Андрей создаёт миграцию
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-ом.
Синтаксис может незначительно поменяться до релиза.