
defaults.conf.parser.txt Maven / Gradle / Ivy
The newest version!
## CREATE TABLE t_user_info
## CREATE TEMPORARY TABLE IF NOT EXISTS t_temp_info
table.name.defined = CREATE\s+(?:\w+\s+)?TABLE\s+(?:IF NOT EXISTS\s+)?['`]?(\w+)['`]?
## 清除表名第1个下划线前的部分和最后的_bean或_info, 如 t_user_info --> user
table.name.clear = (^([a-z]+_)|(_bean|_info)$)
## user_id int(10) NOT NULL AUTO_INCREMENT COMMENT '用户ID'
## user_name varchar(50)
## user_name varchar(50) COMMENT '用户名'
## gender int(1) COMMENT '性别:0.男|1.女'
## score int(8) NOT NULL DEFAULT 0 COMMENT '总积分'
## create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
## card_balances decimal(8,4) COMMENT '卡片结余'
## (\w+)(?:\s*\(\s*(\d+\s*(?:,\s*\d+)?)\s*\))? -- varchar(50) or decimal(14,4)
field.info.defined = ^\s*(["'`]?\w+["'`]?)\s+(\w+)(?:\s*\(\s*(\d+\s*(?:,\s*\d+)?)\s*\))?(.*?)(?:COMMENT\s+'(.*?)')?\s*(?:,|$)
## primary key (id)
## unique key uq_area_code (scene_type, area_code)
## key uq_code (area_code)
## key varchar (20) # 正常情况下括号里面应该是数字
## constraint pk_area primary key (id) # oracle
## constraint uq_area unique (area_code) # oracle
field.info.exclude = ^\s*(\w+\s+key|key\s+\w+\s*\([a-z]|constraint\s+\w+(primary|unique))
## ORACLE: COMMENT ON COLUMN t_user_info.create_time IS '创建时间';
## MYSQL的字段暂不需要支持外部注释, 因为PowerDesigner生成的MYSQL建表语句的字段注释都是写在字段后面的
field.comment.outer = COMMENT\s+ON\s+COLUMN\s+["'`]?(\w+)["'`]?\.["'`]?(\w+)["'`]?\s+IS\s+'(.*?)'
## ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表';
table.comment.inner = ENGINE\s*=.*?COMMENT(?:\s*=\s*|\s+)'(.*?)'
## MYSQL: ALTER TABLE t_user_info COMMENT '用户信息表';
## ORACLE: COMMENT ON TABLE t_user_info IS '用户信息表';
table.comment.outer = (?:ALTER\s+TABLE|COMMENT\s+ON\s+TABLE)\s+["'`]?(\w+)["'`]?\s+.*?(?:COMMENT|IS)\s+'(.*?)'
## 索引内部定义(MYSQL)
## PRIMARY KEY (`id`)
## FULLTEXT KEY `idx_keywords` (`name`, `query_keywords`)
## FULLTEXT KEY `idx_keywords`
## (`name`, `query_keywords`)
## 正则说明: (?:\(|$) 表示左括号或行尾
index.defined.inner = (PRIMARY|FULLTEXT)\s+KEY\s+["'`]?(\w+)["'`]?\s*(?:\(|$)
## 索引外部定义
## CREATE FULLTEXT INDEX `idx_keywords` ON `table_name` (
## `name`,
## `query_keywords`
## );
index.defined.outer = CREATE\s+(?:(\w+)\s+)?INDEX\s+["'`]?(\w+)["'`]?\s+ON\s+["'`]?(\w+)["'`]?
## 约束内部定义(ORACLE)
## CONSTRAINT ak_uq_user_code UNIQUE (user_type, user_code)
constraint.defined.inner = \bCONSTRAINT\b\s*["'`]?(\w+)["'`]?\s*\b(UNIQUE)\b\s*(?:\(|$)
## 索引外部定义
## CREATE FULLTEXT INDEX `idx_keywords` ON `table_name` (
## `name`,
## `query_keywords`
## );
index.defined.outer = CREATE\s+(?:(\w+)\s+)?INDEX\s+["'`]?(\w+)["'`]?\s+ON\s+["'`]?(\w+)["'`]?
## 清除索引名称的前缀: AK_uq_user_sku - user_sku
index.name.clear = (\w{1,3}_)?(uq_|idx_|index_)
## 需要忽略掉的字段
# field.ignore.list =
## 在表注释中查找包声明
## COMMENT '系统行政区划表(pkg:system_config)'
package.defined = \((?:pkg|package)\:([\.\w]+)\)
## 重命名(表/字段)
## COMMENT '系统行政区划表(rename:config)(pkg:system_config)'
table.rename.defined = \((?:ren|rename)\:(\w+)\)
## 在字段注释中查找枚举声明
## gender ... COMMENT '性别:0.未知|1.男|2.女(0.unknown|1.male|2.female)'
## state ... COMMENT '状态:0.正常|1.锁定|2.待激活(user_state:0.normal|1.locked|2.unactivated)'
enum.defined = \(\s*(?:(\w+):\s*)?((?:\d+\.\w+)(?:\|\d+\.\w+)*)\s*\)
## 查找主键
## 优先级:
## 1.special.primary.key.comment
## 2.special.primary.key.field
## 3.primary.key.defined
## 物理主键注释规则
special.primary.key.comment = \(\s*id\s*\)
## 物理主键名称, 用于所有表主键字段名相同的情况
# special.primary.key.field = id
## 主键声明规则
## PRIMARY KEY (user_id)
## PRIMARY KEY (`user_type`, `user_code`)
## CONSTRAINT pk_sys_user_info PRIMARY KEY (id) # ORACLE
primary.key.defined = (?:\bCONSTRAINT\b\s*["'`]?(\w+)["'`]?\s*)?\b(PRIMARY)\s+KEY\b\s*(?:\(|$)
## 特殊字段
## 业务主键, 用于生成findByKey()这样的方法
special.business.key.comment = \(key\)
## 状态位字段, 用于生成findById(id, State... states), findByKey(key, State... states)
# special.state.comment = \(state\)
## 名称字段, 用于生成操作日志的描述
special.name.comment = \(name\)
## 编号字段, 用于生成操作日志的编号
special.code.comment = \(code\)
## 列表字段, 用于in查询
special.list.comment = \(list\)
# special.list.field = \w+_id
## Boolean字段类型
special.boolean.comment = \(boolean\)
## 非空字段
special.not.null.text = NOT NULL
## 创建时间
special.create.time.field = create_time
## 更新时间
special.update.time.field = update_time
© 2015 - 2025 Weber Informatics LLC | Privacy Policy