jpswade / laravel-database-tools
Laravel 数据库工具
1.0.0
2023-03-02 20:06 UTC
Requires
- php: ^7.4|8.0.*|8.1.*
- ext-fileinfo: *
- ext-pdo: *
- ext-zip: *
- illuminate/console: *
- illuminate/filesystem: *
- illuminate/support: *
- laravel/framework: ~5.1|6.*|7.*|8.*|9.*
Requires (Dev)
- orchestra/testbench: ^6.25
- roave/security-advisories: dev-latest
Suggests
- league/flysystem-aws-s3-v3: Needed for db:getFromBackup command to use the S3 Driver.
- spatie/db-dumper: Needed for db:dump command to use the S3 Driver.
README
Laravel 缺失的数据库工具集。一套常用的 Laravel 数据库工具。
使用此包,您可以
- 创建数据库(如果不存在的话)
- 从另一个数据库导出到文件
- 从由 Spatie Backup 包 创建的数据库备份中获取并解压缩
- 从文件导入
- 更新字符集和校对规则
- 通过使用 PDO 为 SQLite 创建缺失的函数,并通过 PHP 函数提供 SQLite 与 MySQL 的兼容性,解决“找不到函数”的错误。
- 使用 MySQL 命令优化数据库表(使用 OPTIMIZE TABLE)
安装
将包安装到您的 Laravel 应用中
composer require --dev jpswade/laravel-database-tools
注意:默认情况下,仅将这些工具安装到开发环境中是明智的,因为在生产环境中通常不需要它们。
配置
发布并自定义您的 dbtools.php
文件
php artisan vendor:publish --provider="Jpswade\LaravelDatabaseTools\ServiceProvider" --tag="config"
这允许您设置备份的源数据库和/或文件系统。
dbtools.database
- 定义db:dump
命令的源数据库,类似于 Laravel 数据库配置。dbtools.filesystem
- 定义db:getFromBackup
命令的源文件系统,类似于 Laravel 文件系统配置。dbtools.filesystem.path
- 定义db:getFromBackup
命令的路径。dbtools.import
- 您可以在此处定义db:importFromFile
命令的method
(命令或普通)。
注意
db:getFromBackup
命令回退到spatie/laravel-backup
包进行配置。
用法
命令如下
db:create
- 创建数据库架构。db:dump
- 从配置的服务器获取最新数据库的副本。db:getFromBackup
- 从备份下载数据库备份文件。db:importFromFile {file?}
- 将数据从 sql 文件导入数据库。db:charset
- 将字符集和校对规则更改为目标数据库设置的值。db:optimize
- 优化您的数据库表。
SQLite MySQL 兼容性提供者
对于 测试
,您可以将提供者添加到您的测试中
protected function registerServiceProviders(): void { $this->app->register(SqliteMysqlCompatibilityProvider::class); } protected function setUp(): void { parent::setUp(); $this->registerServiceProviders(); }
在生产环境中,遵循常规的 注册提供者 指令
在 config/app.php
中,找到 providers
数组并添加
'providers' => [ // Other Service Providers Jpswade\LaravelDatabaseTools\SqliteMysqlCompatibilityProvider::class, ],
限制
如果您使用某些命令,您会遇到以下限制
db:getFromBackup
命令依赖于league/flysystem-aws-s3-v3 "^1.0"
包,当您根据 Laravel 文档使用 Amazon S3 驱动程序 时。db:dump
命令依赖于spatie/db-dumper
。- 命令目前仅测试过与 MySQL 一起使用,但可以扩展到其他数据库。
db:importFromFile
命令只能导入.sql
文件。db:optimize
命令目前仅适用于 MySQL。
故障排除
找不到类 'League\Flysystem\AwsS3v3\AwsS3Adapter'
% composer require league/flysystem-aws-s3-v3:~1.0
注意:需要用于 db:getFromBackup
命令使用 S3 驱动程序。
找不到类 'Spatie\DbDumper\Databases\MySql'
% composer require spatie/db-dumper
注意:由db:dump
命令所需。