SuperTable表结构维护工具
一、简述
用于同步表实体与数据库表结构,同步建表、删改字段、索引,种子数据的工具…
一、开发环境
JDK
:JDK8SpringBoot
:2.7.2MyBatisPlus
: 3.5.6MySQL
: 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> {
@Override
public List<SysUser> getSeedData() {
....
}
}
创建类并实现接口SuperSeedData
可实现种子数据同步到数据库
五、功能演示
PS:等整理好发开源地址