laravel逆向生成迁移文件

熟悉laravel的同学都知道,laravel的数据迁移和数据填充,能够随着源代码的改变而同步记录同步数据库结构的变化,也就是对数据库的版本控制。但是,有的项目开发之初,数据库结构的变化会比较频繁,每个都手动创建migrate文件的,工作量会比较大,或者老项目已有数据库,如果手动为所有的已存在的表去创建迁移文件的会非常耗时,还容易出错。这里,就给大家分享一下如何逆向生成迁移文件。本文基...
摘要由CSDN通过智能技术生成

熟悉laravel的同学都知道,laravel的数据迁移和数据填充,能够随着源代码的改变而同步记录同步数据库结构的变化,也就是对数据库的版本控制。

但是,有的项目开发之初,数据库结构的变化会比较频繁,每个都手动创建migrate文件的,工作量会比较大,或者老项目已有数据库,如果手动为所有的已存在的表去创建迁移文件的会非常耗时,还容易出错。

这里,就给大家分享一下如何逆向生成迁移文件。

本文基于Laravel5.5,其他版本大同小异。

安装

轮子早就有人造好啦,xethron/migrations-generator,只需要composer安装一下

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

配置

config/app.php中添加相应的服务提供者

// 省略之前内容
'providers'       => [
    // 省略之前内容
    Way\Generators\GeneratorsServiceProvider::class,
    Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class,
],
// 省略之后内容

注册服务,在app/Providers/AppServiceProvider.php中register()方法里添加

// 仅在开发环境中使用
if ($this->app->environment() !== 'production') {
    $this->app->register(\Way\Generators\GeneratorsServiceProvider::class);
    $this->app->register(\Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class);
}

生成迁移文件

在项目根目录运行:

php artisan migrate:generate

接下来会让你确认

Using connection: mysql

Generating migrations for: articles, password_resets, students, students_10000, users

 Do you want to log these migrations in the migrations table? [Y/n] :
 > Y

 Next Batch Number is: 2. We recommend using Batch Number 0 so that it becomes the "first" migration [Default: 0] :
 > 0

Setting up Tables and Index Migrations
Created: F:\techlee\www\laravel55-demo\database/migrations/2018_01_04_050153_create_articles_table.php
Created: F:\techlee\www\laravel55-demo\database/migrations/2018_01_04_050153_create_password_resets_table.php
Created: F:\techlee\www\laravel55-demo\database/migrations/2018_01_04_050153_create_students_table.php
Created: F:\techlee\www\laravel55-demo\database/migrations/2018_01_04_050153_create_students_10000_table.php
Created: F:\techlee\www\laravel55-demo\database/migrations/2018_01_04_050153_create_users_table.php

Setting up Foreign Key Migrations


Finished!

这样就将已有的数据表,批量生成迁移文件啦,可以在database/migrations目录里查看是否生成了迁移文件呢。

后续的开发可以是Migrations维护数据结构了。

你也可以指定某张表生成迁移文件

php artisan migrate:generate table1,table2,table3

也可以反向忽略某些表

php artisan migrate:generate --ignore="table3,table4,table5"

更多用法,请使用help查看

php artisan help migrate:generate

composer包的地址:https://packagist.org/packages/xethron/migrations-generator

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值