yii2使用migration备份和还原数据库,最初只想作一个在命令行中备份的功能,后来将类重组了,增长了其余扩展使用方法。php
安装此扩展的首选方式是经过 composer.github
运行ajax
composer require --prefer-dist e282486518/yii2-console-migration "*"
或者添加数据库
"e282486518/yii2-console-migration": "*"
到 composer.json
文件的对应地方.json
在console\config\main.php
中添加 :yii2
'controllerMap' => [ 'migrates' => [ 'class' => 'e282486518\migration\ConsoleController', ], ],
在命令行中使用方式:composer
php ./yii migrates/backup all #备份所有表 php ./yii migrates/backup table1,table2,table3... #备份多张表 php ./yii migrates/backup table1 #备份一张表 php ./yii migrates/up #恢复所有表
在后台的控制器中,例如PublicController
中加入下面的代码:yii
public function actions() { return [ 'backup' => [ 'class' => 'e282486518\migration\WebAction', 'returnFormat' => 'json', 'migrationPath' => '@console/migrations' ] ]; }
在后台中发送一个ajax请求到/admin/public/backup?tables=yii2_ad,yii2_admin
便可。ui
对于想作更多扩展的朋友,能够直接继承e282486518\migration\components\MigrateCreate
或者使用一下代码:
$migrate = Yii::createObject([ 'class' => 'e282486518\migration\components\MigrateCreate', 'migrationPath' => '@console/migrations' ]); $migrate->create($table);