注意:如果你使用的是php7.2,那么yii必须使用v2.0.15.1以上,因为yii2核心类Object和php7.2的保留类Object冲突。, (*1)
use yii\base\Object // PHP7.1以及之前版本
use yii\base\BaseObject // PHP7.2
yii2使用migration备份和还原数据库
yii2使用migration备份和还原数据库,最初只想做一个在命令行中备份的功能,后来将类重组了,增加了其他扩展使用方法。, (*2)
安装 Installation
安装此扩展的首选方式是通过 composer., (*3)
运行, (*4)
composer require e282486518/yii2-console-migration "@dev"
或者添加, (*5)
"e282486518/yii2-console-migration": "*"
到 composer.json
文件的对应地方., (*6)
命令行中备份数据表:
在console\config\main.php
中添加 :, (*7)
'controllerMap' => [
'migrate' => [
'class' => 'e282486518\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' => 'e282486518\migration\WebAction',
'returnFormat' => 'json',
'migrationPath' => '@console/migrations'
]
];
}
在后台中发送一个ajax请求到/admin/public/backup?tables=yii2_ad,yii2_admin
即可。, (*10)
其他使用方法:
对于想做更多扩展的朋友,可以直接继承e282486518\migration\components\MigrateCreate
, (*11)
或者使用一下代码:, (*12)
$migrate = Yii::createObject([
'class' => 'e282486518\migration\components\MigrateCreate',
'migrationPath' => $this->migrationPath
]);
$migrate->create($table);