laravel - 根据数据库逆向生成迁移文件
写在最前
因为平时在用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 检查是否存在表 |
结尾
这样我们就以一个非常优美的姿势逆向生成出了所有的迁移文件
相关文章
- 快速学会慢查询SQL排查
- Android破解心得——记学习七少月安卓大型安全公开课
- 新特性解读 | MySQL 8.0.31 导入直方图存量数据
- 【Qbot】4.连接mysql/限制使用次数
- MySQL 为什么要使用索引及索引创建的原则有哪些?
- MySQL 6种索引数据结构详解:BTree、B+Tree、红黑树、平衡二叉树、二叉树、Hash
- MySQL 聚集索引(InnoDB)和 非聚集索引(MyISAM) 精讲~两张图彻底搞懂
- MySQL 事务隔离级别 理论+实战分析
- MySQL MVCC 多版本并发控制机制 工作原理
- MySQL : 彻底搞懂一条SQL的执行过程
- 彻底搞懂MySQL主从复制工作原理 2+3+3+4
- MySQL Explain 执行计划详解、写高效SQL、灵活使用索引(实战)
- MySQL 数据库 Schema 设计的性能优化①:高效的模型设计
- 图算法、图数据库在风控场景的应用
- 客快物流大数据项目(九十一):ClickHouse的数据库引擎
- 零基础学SQL注入必练靶场之SQLiLabs(搭建+打靶)
- aws生产实践-33:aurora查看触发死锁的sql
- C/C++ Qt 数据库与Chart实现历史数据展示
- C/C++ Qt 数据库SqlRelationalTable关联表
- C/C++ Qt 数据库与SqlTableModel组件应用