contratosgov / laravel-db-snapshots
快速转储和加载数据库
Requires
- php: ^7.0
- illuminate/support: ^5.4.30
- league/flysystem: ^1.0.41
- spatie/db-dumper: ^2.11
- spatie/laravel-migrate-fresh: ^1.4.1
- spatie/temporary-directory: ^1.1
Requires (Dev)
- mockery/mockery: ^0.9.8
- orchestra/testbench: ^3.4.10
- phpunit/phpunit: ^6.5 || ^7.0
README
本包为 Laravel 应用提供 Artisan 命令,用于快速转储和加载数据库。
# Create a dump
php artisan snapshot:create my-first-dump
# Make some changes to your db
# ...
# Create another dump
php artisan snapshot:create my-second-dump
# Load up the first dump
php artisan snapshot:load my-first-dump
# List all snapshots
php artisan snapshot:list
本包支持 MySQL、PostgreSQL 和 SQLite。
安装
您可以通过 Composer 安装此包
composer require spatie/laravel-db-snapshots
在 Laravel 5.5 及以上版本中,包将自动注册服务提供者。对于 Laravel 5.4 或以下版本,您必须将此服务提供者安装到 config/app.php
'providers' => [
// ...
Spatie\DbSnapshots\DbSnapshotsServiceProvider::class,
];
最后,您应该在 app/config/filesystems.php
中添加一个名为 snapshots
的磁盘,用于保存快照。这是一个典型的配置:
// ...
'disks' => [
// ...
'snapshots' => [
'driver' => 'local',
'root' => database_path('snapshots'),
],
// ...
可选地,您可以使用以下命令发布配置文件:
php artisan vendor:publish --provider="Spatie\DbSnapshots\DbSnapshotsServiceProvider" --tag="config"
这是发布文件的內容
return [
/**
* The name of the disk on which the snapshots are stored.
*/
'disk' => 'snapshots',
/**
* The connection to be used to create snapshots. Set this to null
* to use the default configured in `config/databases.php`
*/
'default_connection' => null,
/**
* The directory where temporary files will be stored.
*/
'temporary_directory_path' => storage_path('app/laravel-db-snapshots/temp'),
/*
* Create dump files that are gzipped
*/
'compress' => false,
];
用法
要创建快照(即从数据库的转储),运行
php artisan snapshot:create my-first-dump
给快照命名是可选的。如果不传递名称,将使用当前日期和时间
# Creates a snapshot named something like `2017-03-17 14:31`
php artisan snapshot:create
在创建快照时,您可以选择创建压缩快照。为此,可以在命令行中传递 --compress
选项,或将配置选项 db-snapshots.compress
设置为 true
# Creates a snapshot named my-compressed-dump.sql.gz
php artisan snapshot:create my-compressed-dump --compress
在数据库中进行了更改后,您可以创建另一个快照
php artisan snapshot:create my-second-dump
要加载以前的转储,运行以下命令
php artisan snapshot:load my-first-dump
要加载以前的转储到另一个数据库连接
php artisan snapshot:load my-first-dump --connection=connectionName
要列出所有转储,运行
php artisan snapshot:list
可以使用以下命令删除转储
php artisan snapshot:delete my-first-dump
事件
有一些事件被触发,可以用来执行一些自己的逻辑
Spatie\DbSnapshots\Events\CreatingSnapshot
:将在创建快照之前触发Spatie\DbSnapshots\Events\CreatedSnapshot
:将在创建快照后触发Spatie\DbSnapshots\Events\LoadingSnapshot
:将在加载快照之前触发Spatie\DbSnapshots\Events\LoadedSnapshot
:将在加载快照后触发Spatie\DbSnapshots\Events\DeletingSnapshot
:将在删除快照之前触发Spatie\DbSnapshots\Events\DeletedSnapshot
:将在删除快照后触发
更新日志
请参阅 CHANGELOG 了解最近更改的详细信息。
测试
composer test
贡献
有关详细信息,请参阅 CONTRIBUTING
安全
如果您发现任何安全问题,请通过电子邮件 freek@spatie.be 而不是使用问题跟踪器。
明信片软件
您可以使用此包(它受 MIT 许可),但如果它进入了您的生产环境,我们非常希望您从家乡寄给我们一张明信片,说明您正在使用我们的哪个包。
我们的地址是:Spatie,Samberstraat 69D,2060 安特卫普,比利时。
我们将在我们的公司网站上发布收到的所有明信片 在这里。
鸣谢
支持我们
Spatie 是一家总部位于比利时的安特卫普网络设计公司。您可以在我们的网站上找到我们所有开源项目的概述 在这里。
您的业务依赖于我们的贡献吗?请联系我们,在 Patreon 上支持我们。所有承诺都将致力于分配人力以维护和新奇事物。
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可文件。