Liquibase可以使用多种格式书写迁移脚本(XML,YAML,JSON,SQL)
Liquibase依赖
<dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> </dependency>
这里没有指定版本,查看后得知自动倒入了3.8.2版本
添加spring配置信息
spring: liquibase: enabled: true change-log: classpath:db/changelog/*.yaml
这里如果不进行配置,默认会从 classpath:/db/changelog/db.changelog-master.xml 处读取文件信息
接下来添加liquibase文件,文件目录即为配置文件中的目录
databaseChangeLog: - changeSet: id: 1 author: rootdeng changes: - createTable: tableName: liquibase_table columns: - column: name: id type: int autoIncrement: true constraints: unique: true nullable: false primarkKey: true - column: name: field_name type: varchar(25) constraints: nullable: false - column: name: field_value type: varchar(85) constraints: nullable: false - insert: tableName: liquibase_table columns: - column: name: field_name value: 测试 - column: name: field_value value: 成功
上面的文件展示了数据表从创建(createTable)到插入数据(insert)的写法
Flyway有多个脚本,每个脚本对应一个变更集。Liquibase变更集都集中在一个配置文件中,通过changeset中的id进行区分,应用程序启动时,Liquibase会使用databaseChangeLog表中的内容进行对比,执行未运行的变更集
下图是执行结果