coderatio / simple-backup
一个简单的PHP mysql数据库备份库。
v1.0.4
2020-05-10 19:46 UTC
Requires
- php: ^5.6|^7.0|^7.1|^7.2
Requires (Dev)
- phpunit/phpunit: >=7
This package is auto-updated.
Last update: 2024-09-27 06:35:36 UTC
README
一个简单的PHP mysql数据库备份库。此库可以帮助您将mysql数据库备份到项目目录或下载到您的机器。
该库还允许您在不紧张的情况下导入或恢复数据库。按照以下说明开始。
安装
打开您的终端或命令提示符,并输入以下命令
composer require coderatio/simple-backup
新版本 1.0.1
- 您现在可以在`SimpleBackup类`上链式调用`::start()`。
- 本版本包括流畅的数据库设置链式操作。
- 添加了`->includeOnly(array $tables)`,允许您仅导出`$tables`变量中提到的表的数据。
- 添加了`->excludeOnly(array $tables)`,在导出时排除`$tables`变量中提到的表。
(v1.0.1) 仅导出特定表
SimpleBackup::start() ->setDbName('db_name') ->setDbUser('db_username') ->setDbPassword('db_password') ->includeOnly(['carts', 'houses', 'categories']) ->then()->storeAfterExportTo('backups') ->then()->getResponse();
(v1.0.1) 仅排除特定表
SimpleBackup::start() ->setDbName('db_name') ->setDbUser('db_username') ->setDbPassword('db_password') ->excludeOnly(['users', 'posts']) ->then()->storeAfterExportTo('backups') ->then()->getResponse();
导出
导出可以通过两种方式完成。
- 存储在目录中
- 下载到您的机器
1-- 存储在目录中
要将导出存储在目录中,请这样做
require 'vendor/autoload.php'; use Coderatio\SimpleBackup\SimpleBackup; // Set the database to backup $simpleBackup = SimpleBackup::setDatabase(['db_name', 'db_user', 'db_password', 'db_host']) ->storeAfterExportTo('pathtostore', 'file_name (optional)');
要获取存储的文件名,您可以像这样输出来
echo $simpleBackup->getExportedName();
您也可以这样做来获取响应
/** * @return object **/ var_dump($simpleBackup->getResponse());
2-- 下载
要将导出下载到您的机器,请这样做
require 'vendor/autoload.php'; use Coderatio\SimpleBackup\SimpleBackup; // Set the database to backup $simpleBackup = SimpleBackup::setDatabase(['db_name', 'db_user', 'db_password', 'db_host']) ->downloadAfterExport($file_name (optional));
如果未提供$filename,将为下载生成随机名称。
向表中添加WHERE子句
要像在SQL中那样添加WHERE子句,请在导出之前这样做
注意: $tables变量必须是关联数组,例如
$tables = [ 'users' => 'is_active = true' ];
$simpleBackup->setTableConditions(array $tables);
在表中设置行限制
要在导出之前限制备份表中包含的行数,请这样做
注意: 与添加WHERE子句一样,这里的$tables变量必须是关联数组。例如
$tables = [ 'users' => 50, 'posts' => 50 ]
$simpleBackup->setTableLimitsOn(array $tables);
导入
此包使导入或恢复您的mysql数据库变得简单。要导入数据库,请这样做
require 'vendor/autoload.php'; use Coderatio\SimpleBackup\SimpleBackup; // Set the database to backup $simpleBackup = SimpleBackup::setDatabase(['db_name', 'db_user', 'db_password', 'db_host (optional)']]) ->importFrom('pathtosql_file or sql_contents'); /** * You can then dump the response like this. * * @return object **/ var_dump($simpleBackup->getResponse());
注意: 您可以提供sql语句作为参数。您还可以通过将数据库配置作为第二个参数传递给importFrom()来覆盖数据库配置。例如 importFrom(pathtosql_file, array $db_config);
。
待办事项
- 添加一个调度方法,与cron一起使用
- 将备份存储在Dropbox、Google Drive中。
- 将备份发送到电子邮件
贡献
要为此项目做出贡献,请发送pull request或在我的Twitter上找到我。
许可
本项目采用MIT许可证。