therealsmat/laravel-push-db

: Laravel 包,实现数据库导出功能

1.0.2 2018-02-03 14:30 UTC

This package is not auto-updated.

Last update: 2024-09-20 22:58:33 UTC


README

Software License

此包允许您轻松导出数据库。它还提供了一个 artisan 命令 php artisan db:push,以简化此过程。您可以从控制台手动运行,或使用 Laravel 调度程序。完全取决于您的选择。

需求

需要 PHP 5.4+ 和 Composer

安装

运行 composer require therealsmat/laravel-push-db 以获取包的最新版本。

配置

要开始使用 laravel-push-db,请将 therealsmat\PushDB\PushDBServiceProvider::class 添加到您的 app.php 文件中的 providers 数组。

接下来,通过运行 php artisan vendor:publish --provider="therealsmat\PushDB\PushDBServiceProvider" 发布 PushDB 服务提供者。

您将获得一个名为 pushdb.php 的配置文件。如果您愿意,可以自由编辑它。

此外,您将获得一个新的 artisan 命令 db:push。此命令本身将快速导出您的数据库。

使用方法

使用此包有两种方式。

控制器

public function export(PushDB $db)
    {
        try{
            if ($db->export()) {
                return 'Database Export Successful';
            }
            return 'Database export not successful';
        } catch (ProcessFailedException $e)
        {
            return $e->getMessage();
        } catch (\Exception $e)
        {
            return $e->getMessage();
        }

    }

命令

简单地运行 php artisan db:push,您的数据库将被放置在您从 pushdb.php 中的 output_path 选项设置的路径中。此命令如此简单,可以以多种方式使用。

  1. 您可以在控制器中以编程方式使用它
/**
* Call the artisan command
*/
Artisan::call('db:push');

/**
* Get the file from the output path
*/
Storage::disk('s3')->put('Database.sql', config('pushdb.output_path'));

当然,您必须已从 filesystems.php 文件中设置您的 s3 磁盘。

  1. 您可以使用 Laravel 调度程序自动运行上述 (1),例如:
$schedule->command('db:push --force')->daily();

支持的数据库

目前仅支持 mysql 数据库!

待办事项

  • 实现推送到云存储功能,例如推送到 Dropbox、Google Drive 等。
  • 在发送到 process 方法之前检查配置值是否存在。
  • 在导出之前检查数据库是否存在。
  • 编写全面的测试以使包更加可靠。
  • 包括对其他数据库的支持。

许可

MIT 许可证(MIT)。请参阅 许可文件 了解更多信息。