-
添加依赖
text<dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> </dependency> -
添加配置
ymlspring: liquibase: contexts: dev,test enabled: true -
编写liquibase配置类
java@Configuration @EnableConfigurationProperties(LiquibaseProperties.class) public class LiquibaseConfig { @Bean public SpringLiquibase liquibase(DataSource dataSource, LiquibaseProperties properties) { SpringLiquibase liquibase = new SpringLiquibase(); liquibase.setDataSource(dataSource); //指定changelog的位置,这里使用的一个master文件引用其他文件的方式 liquibase.setChangeLog("classpath:liquibase/master.xml"); liquibase.setContexts(properties.getContexts()); liquibase.setDefaultSchema(properties.getDefaultSchema()); liquibase.setDropFirst(properties.isDropFirst()); liquibase.setShouldRun(properties.isEnabled()); liquibase.setChangeLogParameters(properties.getParameters()); liquibase.setRollbackFile(properties.getRollbackFile()); liquibase.setShouldRun(true); return liquibase; } } -
编写master.xml文件(注意includeAll配置的路径与changelog文件的路径)
xml<?xml version="1.0" encoding="utf-8"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> <property name="now" value="now()" dbms="h2"/> <property name="now" value="now()" dbms="mysql"/> <property name="floatType" value="float4" dbms="postgresql, h2"/> <property name="floatType" value="float" dbms="mysql, oracle, mssql, mariadb"/> <property name="clobType" value="clob" dbms="h2"/> <property name="clobType" value="clob" dbms="mysql, oracle, mssql, mariadb, postgresql"/> <property name="uuidType" value="varchar(36)" dbms="h2, mysql, mariadb"/> <includeAll path="liquibase/changelog/"/> </databaseChangeLog> -
编写changelog文件 00000000000000_init_schema.xml
xml<?xml version="1.0" encoding="utf-8"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"> <property name="autoIncrement" value="true"/> <changeSet author="system" id="00000000000001" context="dev"> <createTable tableName="hello_date_time_wrapper"> <column name="id" type="BIGINT"> <constraints primaryKey="true" primaryKeyName="hello_date_time_wrapperPK"/> </column> <column name="instant" type="timestamp"/> <column name="local_date_time" type="timestamp"/> <column name="offset_date_time" type="timestamp"/> <column name="zoned_date_time" type="timestamp"/> <column name="local_time" type="time"/> <column name="offset_time" type="time"/> <column name="local_date" type="date"/> </createTable> </changeSet> </databaseChangeLog>
Springboot集成Liquibase笔记整理
yicj2024-08-20 11:46
相关推荐
考虑考虑1 小时前
JDK26中的Map.ofLazy鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 14 章 MCP 服务端(上):注解式实现与工具来源鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 15 章 MCP 服务端(下):三种协议形态、Streamable 传输与状态管理鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 16 章 向量存储(上):`VectorStore` 接口体系、`BatchingStrategy`鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 12 章 工具循环的流式形态、Usage 累加与扩展体系鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 23 章 模型供应商实现:从 `OpenAiSetup` 到 Bedrock鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 06 章 内置 Advisor 全景:13 个实现逐个剖到源码级鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 03 章 消息体系与 Prompt:不可变模型、`ChatOptions` 与模板渲染鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 24 章 生产实践与 2.x 迁移:陷阱清单、AOT 与调优鶴哥只手遮天5 小时前
Spring AI 2.0.1 深度解析-第 10 章 工具调用(中):执行链路、结果转换与工具限制