clevis/database-backup

v1.0.0 2014-02-03 09:18 UTC

This package is auto-updated.

Last update: 2024-08-29 04:08:07 UTC


README

这是一个围绕 Clevis/MySQLDump 库的轻量级包装器,可以限制保留的最大备份数量。保留的备份将在此工具使用期间有效地分配到整个时间段。备份越旧,它们之间的时间间隔就越大。

备份随时间分布的可视化

Backups distribution in time

安装

推荐使用 Composer 来安装此库。

composer require clevis/database-backup

基本用法

$mysqli = new mysqli('localhost', 'root', 'password', 'database');
$dumper = new MySQLDump($mysqli);

// store backups to directory './backups' and keep at most 100 backups
$backup = new Clevis\DatabaseBackup\DatabaseBackup($dumper, __DIR__ . '/backups', 100);
$backup->backupDatabase();

如果你使用 dibi,你可以这样获取 $mysqli 对象

$mysqli = $dibiConnection->getDriver()->getResource();

高级用法

你可以通过配置 $dumper 实例来自定义创建的备份。

  1. 不要备份表 foo

    $dumper->tables['foo'] = $dumper::NONE;
  2. 只备份表 foo 的结构,但不包括数据

    // CREATE TABLE `foo` (...)
    $dumper->tables['foo'] = $dumper::CREATE;
    
    // DROP TABLE `foo` IF EXISTS + CREATE TABLE `foo` (...)
    $dumper->tables['foo'] = $dumper::CREATE | $dumper::DROP;
  3. 只备份表 foo 的一些行

    $dumper->setCustomDataSelect('foo', 'SELECT * FROM `foo` WHERE `bar` = 1');
  4. 在备份表时不要锁定表

    $dumper->setUseLock(FALSE);
  5. 更多示例请参阅 Clevis/MySQLDump 库的文档。