nwidart/db-exporter

快速轻松地将数据库导出为Laravel迁移文件以及将所有数据导出为Seeder类。

1.1 2015-04-24 05:56 UTC

This package is auto-updated.

Last update: 2024-09-08 07:22:43 UTC


README

Scrutinizer Quality Score Latest Stable Version Total Downloads Latest Unstable Version License

数据库导出器

快速轻松地将数据库导出为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 Widartn.widart@gmail.com

以下是对任何获得此软件及其相关文档副本(“软件”)的人的授权:免费、不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许提供软件的人这样做,但受以下条件的约束

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的,还是针对适销性、特定目的适用性和非侵权性的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是由于合同行为、侵权行为或其他方式引起的,无论是否与软件或其使用或其他操作有关。