2015-06-02 3 views
1
class m150602_071107_naujassss extends CDbMigration 
{ 
    public function up() 
    { 
    } 

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

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

    public function safeDown() 
    { 
    } 
    */ 
} 

CDbMigration по умолчанию класс продлить мне нужно расширить пользовательский класс CustomCDbMigrationYii миграции расширить пользовательский класс

Как сделать это? Некоторые настройки в config?

ответ

2

Создание пользовательского класса для миграции.

/protected/components or /protected/extension/db (as you wish) 
class CustomMigration extends CDbMigration 
{ 

    protected function getMyVar() 
    { 
     return 'Custom migration'; 
    } 
} 

Перейти к консоли, путь к защищенной, выполнить команду 'yiic migrate create test'. Перейти к сгенерированному файлу миграции и изменения в:

class m150602_071449_test extends CustomMigration 
{ 
    public function up() 
    { 
     echo $this->getMyVar(); 
     die(); 
    } 
... 

тестирование. Запустите консоль «yiic migrate».

Apply the above migration? (yes|no) [no]:yes 
*** applying m150602_071449_test 
Custom migration <------- my function 

Для шаблона переопределения миграции:

//console config 
'components'=>array(/*...*/), 
'commandMap'=>array(
     'migrate'=>array(
      'class'=>'system.cli.commands.MigrateCommand', 
      'migrationPath'=>'application.migrations', 
      'migrationTable'=>'tbl_migration', 
      'connectionID'=>'db', 
      'templateFile'=>'application.migrations.template', 
     ), 
), 

//template for migrations /protected/migrations/template.php 
<?php 
class {ClassName} extends CustomMigration 
{ 
    public function up() 
    { 
    } 

    //other methods... 
} 

Проверить новое содержание миграции yiic migrate create test. Новая миграция будет получать контент из /protected/migrations/template.php

+0

Хорошо, но мне нужно, чтобы CustomMigration был добавлен в файл созданного переноса автоматически при выполнении 'migrate create name' – Wizard

+0

Я знаю, что мы можем использовать templateFile для миграции , Это лучший способ. Но я никогда не использую это. http://www.yiiframework.com/doc/guide/1.1/en/database.migration –

+0

Я обновил ответ. Вы можете проверить новую версию. Надеюсь, это поможет вам. –

Смежные вопросы