在开发基于Spring Boot的应用程序时,数据库是不可或缺的一部分。随着项目的不断迭代和演进,数据库结构也会随之变化。为了有效地管理数据库结构的变更并保证数据的一致性,一种常用的方式是使用数据库版本控制工具。Liquibase是一个流行的开源工具,它可以帮助开发人员实现数据库变更的追踪和管理。本文将介绍如何在Spring Boot项目中使用Liquibase来实现数据库版本控制。
1. Liquibase简介
Liquibase是一个基于Java的数据库变更管理工具,它允许开发人员以声明性的方式描述数据库结构的变更,并自动处理这些变更的应用。通过使用Liquibase,开发人员可以轻松地跟踪数据库结构的变更历史,并在不同环境之间进行数据库结构的同步。
2. 在Spring Boot项目中集成Liquibase
添加依赖
首先,在Spring Boot项目的pom.xml文件中添加Liquibase的依赖:
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>4.24.0</version>
</dependency>
<!--配置mybatis 进行加入数据-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
<exclusions>
<exclusion>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.5.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
3. 配置文件
spring:
liquibase:
change-log: classpath:db/changelog/db.changelog-master.yaml
datasource:
url: jdbc:mysql://localhost:3306/liq
username: root
password: 1234
4. 配置 Liquibase
mysql 下是我们需要执行的脚本,db.changelog-master.yaml 是配置做什么,怎么做
db.changelog-master.yaml 文件信息
databaseChangeLog:
# 包含 continew-admin_table.sql 文件中定义的数据库表创建操作
- include:
file: db/changelog/mysql/continew-admin_table.sql
最后我们配置一下启动执行创建数据库的操作
@Configuration
public class LiquibaseConfig {
/**
* 配置 Liquibase bean,用于数据库变更管理。
*
* @param dataSource 数据源,用于连接数据库
* @return SpringLiquibase 对象
*/
@Bean
public SpringLiquibase liquibase(DataSource dataSource) {
// 创建 SpringLiquibase 对象
SpringLiquibase liquibase = new SpringLiquibase();
// 设置数据源
liquibase.setDataSource(dataSource);
// 设置数据库变更日志文件路径
liquibase.setChangeLog("classpath:/db/changelog/db.changelog-master.yaml");
// 返回 SpringLiquibase 对象
return liquibase;
}
}