laravel 项目有一个数据库迁移功能,有的项目开发之初,数据库结构的变化会比较频繁,每个都手动创建migrate文件的,工作量会比较大,或者老项目已有数据库,如果手动为所有的已存在的表去创建迁移文件的会非常耗时,还容易出错。
现在给大家分享一个逆向生成数据库迁移文件。
安装
首先composer 安装
composer require --dev "xethron/migrations-generator"
配置
在 config/app.php
中添加相应的服务提供者:
'providers' => [
// 省略之前内容
Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class,
]
注册服务,在app/Providers/AppServiceProvider.php
中register()方法里添加:
if ($this->app->environment() !== 'production') {
$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目录里查看是否生成了迁移文件呢。
你也可以单张表:php artisan migrate:generate table
你也可以多张表:php artisan migrate:generate table,table1,table2