SuperTable表结构维护工具
一、简述
用于同步表实体与数据库表结构,同步建表、删改字段、索引,种子数据的工具…
一、开发环境
- JDK:JDK8
- SpringBoot:2.7.2
- MyBatisPlus: 3.5.6
- MySQL: 5.7
- 其他依赖:略
二、特性
- 表结构初始化
- 表结构增量更新
- 种子数据初始化
- 种子数据增量更新
三、全局配置
在application.yml中添加配置
super-table:# 是否启用表结构初始化enable-init-table: true# 是否启用表结构增量更新enable-incre-table: true# 是否启用种子数据初始化enable-init-seed: true# 是否启用种子数据增量更新enable-incre-seed: true
四、使用说明
1、表注解@SuperTable
@SuperTable(value = "系统用户表", isSystem = true, indexes = {@SuperIndex(indexName ="sys_index_{table}_A", indexFields ="account", indexFieldsOrderAsc = false),@SuperIndex(indexName ="sys_index_{table}_M", indexFields ="mobile", indexFieldsOrderAsc = false),
})
注解参数说明:
value:表注释
isView:视图标记,忽略维护标记
increase:表结构增量更新开关(需开启全局表结构增量更新)
isSystem:系统表标记(预留参数,可忽略)
indexes:表索引数组,内部注解为@SuperIndex
1.1、索引注解@SuperIndex
 indexName:索引名称,其中{table}会自动替换为表名
 indexFields:索引字段组合,支持多字段,这里写类字段名称即可,会自动映射为数据库字段名
 indexFieldsOrderAsc:预留,可忽略
 isUnique:唯一索引标记,默认为false
2、字段注解@SuperColumn
@SuperColumn(value = "账号", length = 64, nullable = true)
注解参数说明:
value:字段注释
length:字符串字段长度,设置columType参数后此字段无效
columType:字段类型,需与mysql数据类型一致
defaultValue:字段默认值,不用加引号,将会原文替换。例如:defaultValue = "NOW()" 会映射为 dafault NOW()
nullable:字段可空标记
extra:额外配置,例如开启根据当前时间戳更新字段则设置extra = "ON UPDATE CURRENT_TIMESTAMP"
3、种子数据 SuperSeedData
public class SysUserSeedData implements SuperSeedData<SysUser> {@Overridepublic List<SysUser> getSeedData() {....}
}
创建类并实现接口SuperSeedData可实现种子数据同步到数据库
五、功能演示

PS:等整理好发开源地址