Wallogit.com
                    
                    2017 © Pedro Peláez
                    
                    
                    
                    
                
                
            
yii2命令行中使用migration备份和还原数据库
yii2 migration 备份数据库数据与恢复, (*1)
yii2使用migration备份和还原数据库,最初只想做一个在命令行中备份的功能,后来将类重组了,增加了其他扩展使用方法。, (*2)
安装此扩展的首选方式是通过 composer., (*3)
运行, (*4)
composer require --prefer-dist chenhakim/migrate-backup "*"
或者添加, (*5)
"chenhakim/migrate-backup": "*"
到 composer.json 文件的对应地方., (*6)
在console\config\main.php中添加  :, (*7)
'controllerMap' => [
    'migrates' => [
        'class' => 'chenhakim\migration\ConsoleController',
    ],
],
在命令行中使用方式:, (*8)
php ./yii migrate/backup all #备份全部表 php ./yii migrate/backup table1,table2,table3... #备份多张表 php ./yii migrate/backup table1 #备份一张表 php ./yii migrate/up #恢复全部表
在后台的控制器中,例如PublicController中加入下面的代码:, (*9)
public function actions()
{
    return [
        'backup' => [
            'class' => 'chenhakim\migration\WebAction',
            'returnFormat' => 'json',
            'migrationPath' => '@console/migrations'
        ]
    ];
}
在后台中发送一个ajax请求到/admin/public/backup?tables=yii2_ad,yii2_admin即可。, (*10)
对于想做更多扩展的朋友,可以直接继承chenhakim\migration\components\MigrateCreate, (*11)
或者使用一下代码:, (*12)
$migrate = Yii::createObject([
        'class' => 'chenhakim\migration\components\MigrateCreate',
        'migrationPath' => $this->migrationPath
]);
$migrate->create($table);
备注:改代码是在e282486518的基础上修改更新的:, (*13)
新增修改代码,备份为batchInsert, (*14)