yii-diandi/yii2-migration

在yii2命令行中使用migration备份和还原数据库

安装次数: 341

依赖项: 4

建议者: 0

安全: 0

星星: 0

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

2.0.7 2022-04-01 12:07 UTC

This package is auto-updated.

Last update: 2024-09-29 05:48:50 UTC


README

注意:如果你使用的是php7.2,那么yii必须使用v2.0.15.1以上版本,因为yii2核心类Object与php7.2的保留类Object冲突。

use yii\base\Object // PHP7.1以及之前版本
use yii\base\BaseObject // PHP7.2

使用yii2 migration备份和还原数据库

使用yii2 migration备份和还原数据库,最初只是想实现一个命令行备份功能,后来将类进行了重组,增加了其他扩展使用方法。

安装 Installation

安装此扩展的首选方式是通过 composer.

运行

composer require yii-diandi/yii2-migration "@dev"

或者添加

"yii-diandi/yii2-migration": "*"

composer.json 文件的对应地方.

命令行中备份数据表:

console\config\main.php中添加

'controllerMap' => [
    'migrate' => [
        'class' => 'diandi\migration\ConsoleController',
    ],
],

在命令行中使用方式:

php ./yii migrate/backup all #备份全部表
php ./yii migrate/backup table1,table2,table3... #备份多张表
php ./yii migrate/backup table1 #备份一张表

php ./yii migrate/up #恢复全部表

在后台中备份数据表:

在后台的控制器中,例如PublicController中加入下面的代码:

public function actions()
{
    return [
        'backup' => [
            'class' => 'diandi\migration\WebAction',
            'returnFormat' => 'json',
            'migrationPath' => '@console/migrations'
        ]
    ];
}

在后台中发送一个ajax请求到/admin/public/backup?tables=yii2_ad,yii2_admin即可。

其他使用方法:

对于想要做更多扩展的朋友,可以直接继承diandi\migration\components\MigrateCreate

或者使用以下代码:

$migrate = Yii::createObject([
        'class' => 'diandi\migration\components\MigrateCreate',
        'migrationPath' => $this->migrationPath
]);
$migrate->create($table);