Home
Softono

Yii2 Db Manager

Open source BSD-3-Clause PHP
92
Stars
32
Forks
9
Issues
8
Watchers
4 years
Last Commit

 About Yii2 Db Manager

Database Backup and Restore functionality

Platforms

Web Self-hosted

Languages

PHP

Links

Need Help Installing Yii2 Db Manager?

We provide expert installation service for this software. Our team will install, configure, and secure Yii2 Db Manager on your server. plans start at just $30.

Yii2 Db Manager

View on GitHub

Yii2 DB manager

Click on a :star:!

Total Downloads Latest Stable Version Latest Unstable Version License

MySQL/PostgreSQL Database Backup and Restore functionality

screenshot

Installation

The preferred way to install this extension is through composer.

Either run

composer require --prefer-dist beaten-sect0r/yii2-db-manager "*"

or add

"beaten-sect0r/yii2-db-manager": "*"

to the require section of your composer.json file.

Configuration

Once the extension is installed, simply add it in your config by:

Basic config/web.php

Advanced backend/config/main.php

Simple config

    'modules' => [
        'db-manager' => [
            'class' => 'bs\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'],
                    ],
                ],
            ],
        ],
    ],

Advanced config

    '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' => 'bs\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'],
                    ],
                ],
            ],
        ],
    ],

Console config

    'modules' => [
        'db-manager' => [
            'class' => 'bs\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'],
        ],
    ],

Make sure you create a writable directory named backup on app root directory.

Usage

Pretty url's /db-manager

No pretty url's index.php?r=db-manager

Console usage

-db - db component, default value: db

-gz - gzip archive

-s - file storage

-f - file name, default last dump

Create dump

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

Restore dump

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

Deleting all dumps

php yii dump/delete-all

Test database connection

php yii dump/test-connection -db=db

Changelog

  • Flysystem support
  • Console support
  • Multiple database management
  • Ability for customize dump and restore options; dump and restore processors
  • Ability for run operations asynchronously
  • Ability for compressing dumps