hadeluca / db-exporter
这是一个Laravel框架的包,通过命令行导出数据库迁移和所有种子数据
Requires
- doctrine/inflector: ~2.0
- illuminate/console: ^8.40
- illuminate/container: ^8.40
- illuminate/contracts: ^8.40
- illuminate/database: ^8.40
- illuminate/support: ^8.40
- maatwebsite/excel: ~3.1
- paragonie/random_compat: v9.99.99
- symfony/console: ~5.0
README
快速方便地将数据库导出为Laravel迁移(结构)和种子类的所有数据。
这可以通过Artisan命令或控制器动作完成。
此包是对现有nWidart/DbExporter库的重构
PS:当您更新库时,请记住重新发布vendor!
变更日志
查看变更日志文件(使用版本2.3.0创建)
安装
将"hadeluca/db-exporter"
添加到composer.json
的要求中
{ ... "require": { ... "hadeluca/db-exporter": "2.5.*" }, }
更新composer
php composer.phar update
或通过命令行
composer require hadeluca/db-exporter
将服务提供者添加到app/config/app.php
'Hardel\Exporter\DBExporterServiceProvider::class'
(可选)发布配置文件。
php artisan vendor:publish hadeluca/db-exporter
使用dev-master
作为版本要求,保持在最新边缘
文档
从命令行
将数据库导出到迁移
基本用法
php artisan dbexp:migration
指定数据库
php artisan dbexp:migration databaseName
忽略表
您可以通过逗号分隔来忽略多个表。
php artisan dbexp:migration --ignore="table1,table2"
将数据库表数据导出到种子类
此命令将导出您所有数据库表数据到一个种子类。
php artisan dbexp:seed
在这里您也可以忽略多个表
php artisan dbexp:seed --ignore="table1,table2"
重要:此操作需要您在config/database.php
中更新数据库配置文件。
接下来,您只需在database/seeds/DatabaseSeeder.php
中添加基础种子类上的调用方法。
$this->call('nameOfYourSeedClass');
现在您可以从命令行运行
php artisan db:seed
,- 或者,无需添加调用方法:
php artisan db:seed --class=nameOfYourSeedClass
链式调用
您还可以结合迁移和种子的生成
php artisan dbexp:all [databaseName] [--ignore="table1,table2"]
忽略表
默认情况下,忽略迁移表。
导出所有数据到.xlsx(Excel)
现在您可以从命令行将所有数据导出到Excel文件
php artisan dbexp:excel-data [databaseName] [path] [--ignore="table1,table2"]
默认情况下(在config.php中),您可以找到库存储数据库.xlsx的路径
<?php return [ 'excel' => [ 'seed' => base_path().'/database/export/excel/seeds/', 'migrations' => base_path().'/database/export/excel/migration/' ] ];
您也可以通过传递路径到命令行来覆盖此路径
php artisan dbexp:excel-data null ~.Desktop.excelFolder [--ignore="table1,table2"]
自动在~/Desktop/excelFolder/database.xlsx中找到
待办事项
创建从MySQL导出数据的导出- 创建Postgres迁移器和种子器
- 创建SQLite迁移器和种子器
- 创建SqlServer迁移器和种子器
致谢
感谢 @nicolaswidart 为原始包,我从新版本的Laravel 5.4, 5.5, 5.6, 5.7, 5.8, 6.*中下载了它,但不兼容。因此我对其进行了修改。
许可证 (MIT)
版权 (c) 2017-2021 Hernan Ariel De Luca , hadeluca@gmail.com
本软件及其相关文档文件(以下简称“软件”)的复制者,在此免费获得使用软件的权利,不受限制地使用软件,包括但不限于使用、复制、修改、合并、发布、分发、许可和/或出售软件副本,并允许软件的接受者进行上述操作,但需遵守以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何形式的明示或默示保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任承担责任,无论该责任是基于合同、侵权或其他原因,以及该软件的使用或其他方式与软件相关联。