php artisan db seed,Laravel扩展: DbExporter 逆向生成Migration 和 db:seed

有时候我们需要工作在已有的数据库上, 或者因为项目需求, 需要对数据进行导出, 并要求方便导入, DbExporter 扩展包可以帮助你.

什么是 Migration 和 Seed

migrate (迁移) 功能: 是一种数据库的版本控制。可以让团队在修改数据库结构的同时,保持彼此的进度一致。迁移通常会和结构生成器一起使用,可以简单的管理数据库结构。

db:seed: Laravel 可以简单的使用 seed 类填充测试数据到数据库。

逆向 Migration 和 Seed?

从已经存在的数据库里面导出数据库结构的 Migrate 文件, 供 php artisan migrate 命令执行;

从已有的数据库里面导出数据为 Seed 文件, 供 php artisan db:seed 命令执行.

安装

安装依赖:

composer require "nwidart/db-exporter:1.*"

添加 Service Providers 到 app/config/app.php:

'Nwidart\DbExporter\DbExportHandlerServiceProvider'

(可选的) 发布配置信息:

php artisan config:publish nwidart/db-exporter

使用

安装完成后, 会发现 php artisan 下多了三个命令:

类似的扩展包还有:

上面的扩展在laravel5.5+上不能用。推荐用下面这个:

https://github.com/Xethron/migrations-generator

Laravel Migrations Generator

Build Status Scrutinizer Code Quality Latest Stable Version Total Downloads License

Generate Laravel Migrations from an existing database, including indexes and foreign keys!

Upgrading to Laravel 5.4

Please note that the Laravel 4 Generator edits have been moved to https://github.com/xethron/Laravel-4-Generators.git to update compatibility.

Laravel 5 installation

The recommended way to install this is through composer:

执行composer命令安装:

composer require --dev "xethron/migrations-generator"

In Laravel 5.5 the service providers will automatically get registered.

In older versions of the framework edit config/app.php and add this to providers section:

Way\Generators\GeneratorsServiceProvider::class,

Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class,

If you want this lib only for dev, you can add the following code to your app/Providers/AppServiceProvider.php file, within the register() method:

public function register()

{

if ($this->app->environment() !== 'production') {

$this->app->register(\Way\Generators\GeneratorsServiceProvider::class);

$this->app->register(\Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class);

}

// ...

}

Notes:

Thanks to @jamisonvalenta, you can now generate Migrations in Laravel 5!

feature/laravel-five-stable was forked from way/generators 3.0.3 and was made Laravel 5.0 ready. Jeffrey Way has discontinued support for Laravel 5, so the other artisan generate: commands may not have been made 5.0 compatible. Investigate the artisan make: commands for substitutes, contribute to Laravel to extend generation support, or fix it and submit a PR to jamisonvalenta/feature/laravel-five-stable.

Laravel 4 installation

Run the following composer command:

composer require --dev "xethron/migrations-generator:~1.3.0"

Next, add the following service providers:

'Way\Generators\GeneratorsServiceProvider',

'Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider',

And you're set. To double check if its working, run php artisan, and look for the command migrate:generate

Usage

To generate migrations from a database, you need to have your database setup in Laravel's Config.

执行下面的命令,就会根据数据库结构自动创建migrate文件:

php artisan migrate:generate

Run php artisan migrate:generate to create migrations for all the tables, or you can specify the tables you wish to generate using php artisan migrate:generate table1,table2,table3,table4,table5. You can also ignore tables with --ignore="table3,table4,table5"

Laravel Migrations Generator will first generate all the tables, columns and indexes, and afterwards setup all the foreign key constraints. So make sure you include all the tables listed in the foreign keys so that they are present when the foreign keys are created.

You can also specify the connection name if you are not using your default connection with --connection="connection_name"

Run php artisan help migrate:generate for a list of options.

https://github.com/orangehill/iseed

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值