UJCMS使用Liquibase作为数据库表结构版本管理工具。
Liquibase文件目录:src/main/resources/db/changelog
。
通过Liquibase中立的描述语言,可以跨数据库平台创建表结构;并通过版本管理的方式,自动判断当前数据库表结构版本,自动更新表结构。免去了手动执行sql的麻烦。
不过使用Liquibase相对比较复杂和麻烦,且有一定的学习难度。一些简单的、没有跨数据库平台需求的二次开发,使用Liquibase可能反而比较低效且麻烦。
Liquibase不是非用不可。实际二次开发时,也可按传统的方式,直接通过SQL语句建表即可。
src/main/resources/db/changelog/db.changelog-8.0.yaml
- changeSet:
id: 1691729970999-1
author: PONY (generated)
changes:
- createTable:
columns:
- column:
constraints:
nullable: false
primaryKey: true
name: id_
remarks: ID
type: INT
- column:
name: name_
remarks: 名称
type: VARCHAR(90)
- column:
name: description_
remarks: 描述
type: VARCHAR(450)
- column:
name: height_
remarks: 身高
type: INT
- column:
name: birthday_
remarks: 出生日期
type: datetime
- column:
constraints:
nullable: false
defaultValue: '1'
name: enabled_
remarks: 是否启用
type: CHAR(1)
tableName: ujcms_example
也可以直接使用SQL维护表结构,如下:
CREATE TABLE ujcms_example
(
id_ int NOT NULL COMMENT 'ID',
name_ varchar(90) NULL COMMENT '名称',
description_ varchar(450) NULL COMMENT '描述',
height_ int NULL COMMENT '身高',
birthday_ datetime NULL COMMENT '出生日期',
enabled_ char(1) NOT NULL DEFAULT '1' COMMENT '是否启用',
PRIMARY KEY (id_)
);
系统中使用ujcms_seq
维护表主键ID,实际开发中,如无跨数据库平台的需求,也可考虑直接用自增主键。