nwidart / db-exporter
快速轻松地将数据库导出为Laravel迁移文件以及将所有数据导出为Seeder类。
Requires
- php: >=5.3.0
- illuminate/support: 4.*|5.*
README
数据库导出器
快速轻松地将数据库导出为Laravel迁移文件以及将所有数据导出为Seeder类。这可以通过 artisan 命令或控制器操作完成。
请注意,我只在 MySQL 数据库上测试了此包。已确认它不与 Postgres 一起工作。
安装
$ composer require nwidart/db-exporter
将服务提供者添加到 app/config/app.php
'Nwidart\DbExporter\DbExportHandlerServiceProvider'
(可选) 发布配置文件。
php artisan config:publish nwidart/db-exporter
使用 dev-master
作为版本要求以保持在最前沿
文档
从命令行
将数据库导出到迁移文件
基本用法
php artisan dbe:migrations
指定数据库
php artisan dbe:migrations otherDatabaseName
忽略表
您可以通过逗号分隔来忽略多个表。
php artisan dbe:migrations --ignore="table1,table2"
将数据库表数据导出到Seeder类
此命令将导出所有数据库表数据到 Seeder 类。
php artisan dbe:seeds
重要:此操作需要您在 app/config/database.php
中更新数据库配置文件。
上传迁移/种子到远程服务器
重要:此操作需要您配置 app/config/remote.php。
重要:包配置远程密钥需要配置以与您的远程目录结构相对应。
您可以使用以下命令上传迁移和/或种子到远程主机: php artisan dbe:remote remoteName [--migrations] [--seeds]
例如 将迁移上传到生产服务器:
php artisan dbe:remote production --migrations
或者 将种子上传到生产服务器:
php artisan dbe:remote production --seeds
或者甚至同时进行
php artisan dbe:remote production --migrations --seeds
从控制器/路由
数据库到迁移
导出当前数据库
这需要您更新数据库配置文件。 该类将根据您的 'default' 选项从 app/config/database.php
文件中导出数据库名称。
在开发环境中创建导出路由
Route::get('export', function() { DbExportHandler::migrate(); });
导出自定义数据库
Route::get('export', function() { DbExportHandler::migrate('otherDatabaseName'); });
数据库到种子
这将写入一个 Seeder 类,其中包含当前数据库的所有数据。
Route::get('exportSeed', function() { DbExportHandler::seed(); });
接下来,您只需要在基Seeder类中添加调用方法
$this->call('nameOfYourSeedClass');
现在您可以从命令行运行
php artisan db:seed
,- 或者,无需添加调用方法:
php artisan db:seed --class=您种子类的名称
链式调用
您还可以将迁移和种子的生成结合起来
DbExportHandler::migrate()->seed();
或者用
DbExportHandler::migrateAndSeed();
重要:请注意,您不能设置外部种子数据库。如果您知道如何在 laravel 中连接外部数据库而无需在 app/database.php 文件中写入 请告诉我。
忽略表
默认情况下,迁移表被忽略。您可以使用以下语法添加要忽略的表
DbExportHandler::ignore('tableToIgnore')->migrate(); DbExportHandler::ignore('tableToIgnore')->seed();
您也可以传递一个要忽略的表的数组。
待办事项
导出数据。如果它还能根据表中的数据生成种子文件,那就更酷了。这将在生产服务器上运行,以将种子获取到开发服务器上。3/1/13直接将迁移部署到生产服务器,以便进行迁移。(作为选项)5/1/13制作命令来完成相同的事情(导出数据库到迁移)4/1/13制作命令来完成相同的事情(导出数据库到种子)4/1/13- 在生成迁移/种子时直接提供上传到远程的功能
版权信息
感谢 @michaeljcalkins 在 paste.laravel.com 上提供的原始类([链接](http://paste.laravel.com/1jdw#4)),该类的目标是生成数据库迁移。遗憾的是,我无法直接使用它,于是进行了调试,并决定将其制作成一个包,并添加了一些自己的特性。
许可证(MIT)
版权所有(c)2013 Nicolas Widart,n.widart@gmail.com
以下是对任何获得此软件及其相关文档副本(“软件”)的人的授权:免费、不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许提供软件的人这样做,但受以下条件的约束
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的,还是针对适销性、特定目的适用性和非侵权性的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是由于合同行为、侵权行为或其他方式引起的,无论是否与软件或其使用或其他操作有关。