yii2命令行或後臺中使用migration備份和還原數據庫

yii2使用migration備份和還原數據庫

yii2使用migration備份和還原數據庫,最初只想作一個在命令行中備份的功能,後來將類重組了,增長了其餘擴展使用方法。php

https://github.com/e282486518/yii2-console-migration.gitgit

安裝 Installation

安裝此擴展的首選方式是經過 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);

生成的migration類文件截圖:

相關文章
相關標籤/搜索