Yii — миграции в примерах

1. Создание новой миграции (папка migrations должна быть создана и разрешена на запись):

#  php yiic.php migrate create create_super_table 

2. Пример миграции создания новой таблицы:

class m150523_140455_createSuperTable extends CDbMigration
{
	public function up()
	{
        $this->createTable('super_table', array(
            'id' => 'pk',
            'status' => 'int(10) DEFAULT 0',
            'type' => 'VARCHAR(100) NOT NULL',
            'amount' => 'double'
        ) , 'ENGINE=InnoDB CHARSET=utf8');
	}

	public function down()
	{
        $this->dropTable('super_table');
	}

	/*
	// Use safeUp/safeDown to do migration with transaction
	public function safeUp()
	{
	}

	public function safeDown()
	{
	}
	*/
}

3. Пример миграции добавления данных в таблицу:

class m150529_061018_insert_data_to_super_table extends CDbMigration
{
	public function up()
	{
        $this->insert('super_table',[
            'type'=>'example',
        ]);
    }

	public function down()
	{
		echo "m150529_061018_insert_data_to_super_table does not support migration down.\n";
		return false;
	}

}

4. Запуск миграций:

# php yiic.php migrate
# php yiic.php migrate —migrationPath=application.modules.somemodule.migrations

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *