2017 © Pedro Peláez
 

yii2-extension backup

Basic Yii2 site backup methods

image

demi/backup

Basic Yii2 site backup methods

  • Monday, January 29, 2018
  • by demi
  • Repository
  • 3 Watchers
  • 12 Stars
  • 4,951 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 4 Forks
  • 2 Open issues
  • 4 Versions
  • 16 % Grown

The README.md

Yii2-backup

Basic Yii2 site backup methods.
Also pay attention to dropbox-backup., (*1)

Installation

Run, (*2)

composer require "demi/backup" "~1.0"

Configurations

Minimal config

Configure /common/config/main.php or console config:, (*3)

'components' => [
    'backup' => [
        'class' => 'demi\backup\Component',
        // The directory for storing backups files
        'backupsFolder' => dirname(dirname(__DIR__)) . '/backups', // <project-root>/backups
        // Directories that will be added to backup
        'directories' => [
            'images' => '@frontend/web/images',
            'uploads' => '@backend/uploads',
        ],
    ],
]

Will create backup for:

directories:
/frontend/web/images/*_
_/backend/uploads/*_
database:
_Yii::$app->db
, (*4)

Result:

/backups/2015_08_11-05_45_48.tar/
>images.tar
>uploads.tar
>sql/blog.sql.gz, (*5)

Maximal config

[
'class' => 'demi\backup\Component',

// The directory for storing backups files
'backupsFolder' => dirname(dirname(__DIR__)) . '/backups', // <project-root>/backups
// You can use alias:
'backupsFolder' => '@backend/backups', // <project-root>/backend/backups

// Name template for backup files.
// if string - return date('Y_m_d-H_i_s')
'backupFilename' => 'Y_m_d-H_i_s',
// also can be callable:
'backupFilename' => function (\demi\backup\Component $component) {
    return date('Y_m_d-H_i_s');
},

// Directories that will be added to backup
'directories' => [
    // format: <inner backup filename> => <path/to/dir>
    'images' => '@frontend/web/images',
    'uploads' => '@backend/uploads',
],

// Name of Database component. By default Yii::$app->db.
// If you don't want backup project database
// you can set this param as NULL/FALSE.
'db' => 'db',
// Default DB host value
'defaultDbHost' => 'localhost',
// List of databases connections config.
// If you set $db param, then $databases automatically
// will be extended with params from Yii::$app->$db.
'databases' => [
    // It will generate "/sql/logs_table.sql.gz" with 
    // dump file "logs_table.sql" of database 'logs'.
    // You can set custom 'mysqldump' command for each database,
    // just add 'command' param.
    'logs_table' => [
        'db' => 'logs', // database name. If not set, then will be used key 'logs_table'
        'host' => 'localhost', // connection host
        'username' => 'root', // database username
        'password' => 'BXw2DKyRbz', // user password
        'command' => 'mysqldump --add-drop-table --allow-keywords -q -c -u "{username}" -h "{host}" -p\'{password}\' {db} | gzip -9', // custom `mysqldump` command
    ],
],
// CLI command for creating each database backup.
// If $databases password is empty,
// then will be executed: str_replace('-p\'{password}\'', '', $command);
// it helpful when mysql password is not set.
// You can override this command with you custom params,
// just add them to $databases config.
'mysqldump' => 'mysqldump --add-drop-table --allow-keywords -q -c -u "{username}" -h "{host}" -p\'{password}\' {db} | gzip -9',

// Number of seconds after which the file is considered deprecated and will be deleted.
// To prevent deleting any files you can set this param as NULL/FALSE/0.
'expireTime' => 2592000, // 1 month
],

What's next

You can use this component anywhere.
For example, you can create console command
/console/controllers/ToolsController.php:, (*6)

<?php
namespace console\controllers;

class ToolsController extends \yii\console\Controller
{
    public function actionBackup()
    {
        /** @var \demi\backup\Component $backup */
        $backup = \Yii::$app->backup;

        $file = $backup->create();

        $this->stdout('Backup file created: ' . $file . PHP_EOL, \yii\helpers\Console::FG_GREEN);
    }
} 

The Versions

29/01 2018

dev-master

9999999-dev https://github.com/demisang/yii2-backup#readme

Basic Yii2 site backup methods

  Sources   Download

GNU GPL-3.0-or-later

The Requires

 

yii2 backup dump

08/11 2015

1.0.1

1.0.1.0 https://github.com/demisang/yii2-backup#readme

Basic Yii2 site backup methods

  Sources   Download

GNU

The Requires

 

yii2 backup dump

11/08 2015

1.0.0

1.0.0.0 https://github.com/demisang/yii2-backup#readme

Basic Yii2 site backup methods

  Sources   Download

GNU

The Requires

 

yii2 backup dump

10/08 2015

0.1.0

0.1.0.0 https://github.com/demisang/yii2-backup#readme

Basic Yii2 site backup methods

  Sources   Download

GNU

The Requires

 

yii2 backup dump