coreproc/laravel-db-backup

本包最新版本(0.3.1)没有可用的许可证信息。

0.3.1 2015-06-15 09:01 UTC

This package is auto-updated.

Last update: 2024-09-12 06:49:51 UTC


README

Join the chat at https://gitter.im/CoreProc/laravel-db-backup

Artisan 命令用于备份数据库。为 Laravel 4.2 构建。最初是从 schickling/laravel-backup 分支中 fork 出来,但修改了更多功能,如从 Amazon S3 保留数据和 Slack 通知。

快速开始

所需设置

composer.json 文件的 require 键中添加以下内容

"coreproc/laravel-db-backup": "0.*"

运行 Composer 更新命令

$ composer update

在你的 app/config/app.php 中,将 'Coreproc\LaravelDbBackup\LaravelDbBackupServiceProvider' 添加到 $providers 数组的末尾

'providers' => array(

    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    ...
    'EllipseSynergie\ApiResponse\Laravel\ResponseServiceProvider',
    'Coreproc\LaravelDbBackup\LaravelDbBackupServiceProvider',

),

用法

基本用法

你可以使用以下命令行快速备份数据库

php artisan db:backup

此命令将备份你的 Laravel 应用程序连接到的数据库。这意味着将使用 app/config/database.php 中的 default 配置。

默认情况下,文件将保存到 app/storage/dumps 路径,并以如下方式命名: {database_name}_{unix_timestamp}.sql

如果你想使用其他数据库,只需在 connection 值中添加另一个配置。在 app/config/database.php 中的示例配置如下

'connections' => array(

    'dbconnection1'  => array(
        'driver'         => 'mysql',
        'host'           => 'localhost',
        'database'       => 'db1',
        'username'       => 'user',
        'password'       => 'password',
        'charset'        => 'utf8',
        'collation'      => 'utf8_unicode_ci',
        'prefix'         => '',
        'slackWebhookPath'  => 'T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'
    ),
    
    'dbconnection2'  => array(
        'driver'            => 'mysql',
        'host'              => 'localhost',
        'database'          => 'db1',
        'username'          => 'user',
        'password'          => 'password',
        'charset'           => 'utf8',
        'collation'         => 'utf8_unicode_ci',
        'prefix'            => '',
        'slackWebhookPath'  => 'T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'
    ),

),

所以,如果你想备份,比如 dbconnection2,你需要在 artisan 命令中添加 --database 选项。

php artisan db:backup --database=dbconnection2

Slack 集成

Slack 是一个团队沟通的平台/服务。使用 Incoming Webhooks 集成,你可以向团队 Slack 中的任何频道发送实时消息。

请注意,我们在数据库配置中添加了一个额外的变量(slackWebhookPath)。要开始接收数据库备份通知,你首先需要在 Slack 团队中添加 Incoming Webhooks 集成。设置完成后,你将获得一个唯一的 Webhook URL,看起来像这样:https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX。只需复制你的唯一 webhook 路径(T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX)并将其添加到数据库配置中。

要禁用 Slack 集成,要么留空值,或者你可以使用 --disable-slack 选项手动禁用 Slack 通知。以下是一个示例

``php artisan db:backup --database=dbconnection2 --disable-slack`

上传到 Amazon S3

要将文件上传到你的 Amazon S3 存储桶,你首先需要输入你的 AWS 设置。默认情况下,此包附带 aws/aws-sdk-php-laravel 包,因此我们将从那里修改设置。

要生成 AWS 库的配置文件,你需要使用以下命令生成它

php artisan config:publish aws/aws-sdk-php-laravel

你将在以下路径找到 AWS 配置文件: app/config/packages/aws/aws-sdk-php-laravel/config.php。填写适当的值。

要上传数据库备份到 S3,请使用 --upload-s3 选项

php artisan db:backup --database=dbconnection2 --upload-s3=s3_bucket_name

--upload-s3 的值更改为你想要上传到的存储桶的名称。

如果你只想保留 S3 备份,设置 --s3-only,这将删除 S3 上传启用时本地备份的副本。

php artisan db:backup --database=dbconnection2 --upload-s3=s3_bucket_name --s3-only=true

数据库保留(目前仅支持 S3)

如果您只想保留数据库的一定数量副本,可以将 --data-retention-s3 选项设置为希望保留数据的天数。以下是一个示例:

php artisan db:backup --database=dbconnection2 --data-retention=30

更改文件名

您可以使用 --filename 选项更改备份文件的名称。所有文件名都将附加 Unix 时间戳。

php artisan db:backup --database=dbconnection2 --filename=test

保存为 ZIP 归档

要创建 ZIP 归档而不是原始 .sql 文件,请设置 --archive 值。

php artisan db:backup --database=dbconnection2 --data-retention=30 --archive=true