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);