s4studio/yii2-db-manager

为 Yii2 的数据库备份管理模块

安装: 100

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 29

公开问题: 0

类型:yii2-extension

2.5.0 2024-03-27 12:18 UTC

This package is auto-updated.

Last update: 2024-09-27 13:25:29 UTC


README

点击一个 ⭐!

Total Downloads Latest Stable Version Latest Unstable Version License

MySQL/PostgreSQL 数据库备份和恢复功能

screenshot

安装

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

运行以下命令之一

composer require --prefer-dist s4studio/yii2-db-manager "*"

或者

"s4studio/yii2-db-manager": "*"

将以下内容添加到您的 composer.json 文件的 require 部分。

配置

扩展安装后,只需将其添加到您的配置中

基本 config/web.php

高级 backend/config/main.php

简单配置

    'modules' => [
        'db-manager' => [
            'class' => 's4studio\dbManager\Module',
            // path to directory for the dumps
            'path' => '@app/backups',
            // list of registerd db-components
            'dbList' => ['db'],
            // Flysystem adapter (optional) creocoder\flysystem\LocalFilesystem will be used as default. 
            'flySystemDriver' => 'creocoder\flysystem\LocalFilesystem',
            'as access' => [
                'class' => 'yii\filters\AccessControl',
                'rules' => [
                    [
                        'allow' => true,
                        'roles' => ['admin'],
                    ],
                ],
            ],
        ],
    ],

高级配置

    'components' => [
        // https://github.com/creocoder/yii2-flysystem
        'backupStorage' => [
            'class' => 'creocoder\flysystem\FtpFilesystem',
            'host' => 'ftp.example.com',
            //'port' => 21,
            //'username' => 'your-username',
            //'password' => 'your-password',
            //'ssl' => true,
            //'timeout' => 60,
            //'root' => '/path/to/root',
            //'permPrivate' => 0700,
            //'permPublic' => 0744,
            //'passive' => false,
            //'transferMode' => FTP_TEXT,
        ],
    ],
    'modules' => [
        'db-manager' => [
            'class' => 's4studio\dbManager\Module',
            // Flysystem adapter (optional) creocoder\flysystem\LocalFilesystem will be used as default. 
            'flySystemDriver' => 'creocoder\flysystem\LocalFilesystem',
            // path to directory for the dumps
            'path' => '@app/backups',
            // list of registerd db-components
            'dbList' => ['db', 'db1', 'db2'],
            // process timeout
            'timeout' => 3600,
            // additional mysqldump/pg_dump presets (available for choosing in dump and restore forms)
            'customDumpOptions' => [
                'mysqlForce' => '--force',
                'somepreset' => '--triggers --single-transaction',
                'pgCompress' => '-Z2 -Fc',
            ],
            'customRestoreOptions' => [
                'mysqlForce' => '--force',
                'pgForce' => '-f -d',
            ],
            // options for full customizing default command generation
            'mysqlManagerClass' => 'CustomClass',
            'postgresManagerClass' => 'CustomClass',
            // option for add additional DumpManagers
            'createManagerCallback' => function($dbInfo) {
                if ($dbInfo['dbName'] == 'exclusive') {
                    return new MyExclusiveManager;
                } else {
                    return false;
                }
            }
            'as access' => [
                'class' => 'yii\filters\AccessControl',
                'rules' => [
                    [
                        'allow' => true,
                        'roles' => ['admin'],
                    ],
                ],
            ],
        ],
    ],

控制台配置

    'modules' => [
        'db-manager' => [
            'class' => 's4studio\dbManager\Module',
            // Flysystem adapter (optional) creocoder\flysystem\LocalFilesystem will be used as default. 
            'flySystemDriver' => 'creocoder\flysystem\LocalFilesystem',
            // path to directory for the dumps
            'path' => '@app/backups',
            // list of registerd db-components
            'dbList' => ['db'],
        ],
    ],

确保您在应用程序根目录中创建了一个名为 backup 的可写目录。

使用方法

美观的 URL /db-manager

不美观的 URL index.php?r=db-manager

控制台使用

-db - 数据库组件,默认值: db

-gz - gzip 存档

-s - 文件存储

-f - 文件名,默认为最新的备份

创建备份

php yii dump/create -db=db -gz -s

恢复备份

php yii dump/restore -db=db -s -f=dump.sql

删除所有备份

php yii dump/delete-all

测试数据库连接

php yii dump/test-connection -db=db

变更日志

  • 支持 Flysystem
  • 支持控制台
  • 多数据库管理
  • 自定义备份和恢复选项的能力;备份和恢复处理器
  • 异步运行操作的能力
  • 压缩备份的能力