写在最前
因为平时在用Mybatis的时候可以根据数据库逆向生成文件,我就在想laravel是不是也可以这么做,然后去网上找了一大堆,发现都在推“xethron/migrations-generator”这个库,但是很明显作者从2017年之后,就没有再维护过了,很显然是不适合laravel9.x去用的,所以我找到了一个可以完美平替的库
生成迁移
首先需要在config/database.php
配置好数据库的连接信息(亲测支持表前缀),然后使用composer安装库
composer require kitloong/laravel-migrations-generator
之后使用laravel的artisan就可以逆向生成迁移文件了
# 为所有表生成迁移
php artisan migrate:generate
# 为指定表生成迁移
php artisan migrate:generate --tables="table1,table2,table3,table4,table5"
# 忽略指定表并生成迁移
php artisan migrate:generate --ignore="table3,table4,table5"
# 指定连接并生成迁移
php artisan migrate:generate --connection="connection_name"
# 生成迁移并合并成一个文件
php artisan migrate:generate --squash
完整用法
参数 | 详解 |
---|---|
-c, --connection[=CONNECTION] | 要使用的数据库连接 |
-t, --tables[=TABLES] | 您希望为其生成迁移的表或视图的列表,用逗号分隔,如: users,posts,comments |
-i, --ignore[=IGNORE] | 您希望忽略生成迁移的表或视图的列表,用逗号分隔,如:users,posts,comments |
-p, --path[=PATH] | 指定创建迁移的位置 |
-tp, --template-path[=TEMPLATE-PATH] | 指定生成器模板的路径 |
–date[=DATE] | 将在指定日期创建迁移。视图和外键将在 +1秒内创建. 时间必须通过 Carbon::parse 去格式化 |
–table-filename[=TABLE-FILENAME] | 自定义表迁移文件名,默认为: [datetime]\_create_[name]_table.php |
–view-filename[=VIEW-FILENAME] | 自定义视图迁移文件名,默认为: [datetime]\_create_[name]_view.php |
–proc-filename[=PROC-FILENAME] | 自定义存储过程迁移文件名,默认为: [datetime]\_create_[name]_proc.php |
–fk-filename[=FK-FILENAME] | 自定义外键迁移文件名,默认为: [datetime]\_add_foreign_keys_to_[name]_table.php |
–log-with-batch[=LOG-WITH-BATCH] | 指定迁移文件的批次号 |
–default-index-names | 不使用数据库索引进行迁移 |
–default-fk-names | 不使用数据库外键进行迁移 |
–use-db-collation | 使用现有数据库排序规则生成迁移 |
–skip-log | 不写入迁移的日志表 |
–skip-views | 跳过视图 |
–skip-proc | 跳过存储过程 |
–squash | 将所有迁移文件合并至一个文件中 |
–with-has-table | 使用 hasTable 检查是否存在表 |
结尾
这样我们就以一个非常优美的姿势逆向生成出了所有的迁移文件