1 个不稳定版本
0.1.5 | 2024年3月15日 |
---|---|
0.1.3 |
|
0.1.2 |
|
0.1.1 |
|
0.1.0 |
|
#683 在 数据库接口
每月138 次下载
25KB
612 行
dbml_diff_mysql
概述
- 对比 dbml 文件和指定数据库的差别并输出 diff.sql
- 生成 dbml 文件的 sql
需求
功能需求
- 通过 dbml 文件和数据库的库表结构对比,生成 diff.sql
- 如果 dbml 文件中有的表,数据库中没有,则生成 create table 语句
- 如果 dbml 中的表,数据库中也有,则对比字段,生成 alter table 语句
- 只做增加字段的操作,不做删除字段的操作,也不做修改字段的操作
- 外键的对比
- 如果 dbml 中有的外键,数据库中没有,则生成 create foreign key 语句
结构化分析
使用
DATABASE_URL=mysql://root:root@localhost:3306/
DIFF_DATABASE_URL=mysql://root:root@localhost:3306/
DIFF_DBML_PATH=./dbml/user.dbml
DIFF_DB_NAME=rtest
DIFF_OUT_SQL_PATH=./dbml/user.sql
DIFF_RUN_SQL=false
DIFF_RUN_CMD=pause
todo
- 对比数据库的结构
- 对比 dbml 的结构
- dbml 的 args 解析
- dbml 和数据库对比生成 changeItem
- changeItem 生成 sql
- 新增关联生成
- 备注的对比生成
- 默认值的对比生成
- 备注的对比生成
依赖项
~20–35MB
~505K SLoC