博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel从现有数据库逆向生成数据库迁移文件,包括索引和外键!
阅读量:4293 次
发布时间:2019-05-27

本文共 2067 字,大约阅读时间需要 6 分钟。

熟悉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: mysqlGenerating 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] : > 0Setting up Tables and Index MigrationsCreated: F:\techlee\www\laravel55-demo\database/migrations/2018_01_04_050153_create_articles_table.phpCreated: F:\techlee\www\laravel55-demo\database/migrations/2018_01_04_050153_create_password_resets_table.phpCreated: F:\techlee\www\laravel55-demo\database/migrations/2018_01_04_050153_create_students_table.phpCreated: F:\techlee\www\laravel55-demo\database/migrations/2018_01_04_050153_create_students_10000_table.phpCreated: F:\techlee\www\laravel55-demo\database/migrations/2018_01_04_050153_create_users_table.phpSetting up Foreign Key MigrationsFinished!

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

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

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

php artisan migrate:generate table1,table2,table3

也可以反向忽略某些表

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

更多用法,请使用help查看

php artisan help migrate:generate

转载地址:http://bmuws.baihongyu.com/

你可能感兴趣的文章
Git(四) - 分支管理
查看>>
PHP Curl发送数据
查看>>
HTTP协议
查看>>
HTTPS
查看>>
git add . git add -u git add -A区别
查看>>
apache下虚拟域名配置
查看>>
session和cookie区别与联系
查看>>
PHP 实现笛卡尔积
查看>>
Laravel中的$loop
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
cmder的安装与配置
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
laravel 定时任务秒级执行
查看>>
浅析 Laravel 官方文档推荐的 Nginx 配置
查看>>
Swagger在Laravel项目中的使用
查看>>
Laravel 的生命周期
查看>>