Flask接口签名sign原理与实例代码浅析
414
2022-12-30
SpringBoot整合liquibase的实现方法
LiquiBase 是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通过执行schema类型的文件来达到迁移。其有点主要有以下:
支持几乎所有主流的数据库,如mysql, PostgreSQL, Oracle, Sql Server, DB2等;
支持多开发者的协作维护;
日志文件支持多种格式,如XML, YAML, jsON, SQL等;
支持多种运行方式,如命令行、Spring集成、Maven插件、Gradle插件等。
liquibase 官方文档地址: http://liquibase.org/documentation/index.html
一、引入依赖
先在 pom 文件里引入依赖
二、指定配置文件位置
在代码中新建一个 LiquibaseConfig 类,用于配置 Liquibase ,指定配置文件的位置。
import javax.sql.DataSource;
import liquibase.integration.spring.SpringLiquibase;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class LiquibaseConfig {
@Bean
public SpringLiquibase liquibase(DataSource dataSource) {
SpringLiquibase liquibase = new SpringLiquibase();
liquibase.setDataSource(dataSource);
//指定changelog的位置,这里使用的一个master文件引用其他文件的方式
liquibase.setChangeLog("classpath:liquibase/master.xml");
liquibase.setContexts("development,test,production");
liquibase.setShouldRun(true);
return liquibase;
}
}
三、编写配置文件
目录结构:
src/main/resources 下新建一个文件夹: liquibase ,用来存放跟 liquibase 相关的文件。
master.xml
然后在 liquibase 文件夹下新建 master.xml 作为主文件。
xmlns="http://liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://liquibase.org/xml/ns/dbchangelog http://liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
xmlns="http://liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://liquibase.org/xml/ns/dbchangelog
http://liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
includeAll 标签可以把一个文件夹下的所有 changelog 都加载进来。如果单个加载可以用 include 。
includeAll 标签里有两个属性: path 和 relativeToChangelogFile 。
Attribute
Description
file
Name of the file to import required
relativeToChangelogFile
Is the file path relative to the root changelog file rather than to the classpath. Defaults to "false" since 1.9
path (在 include 标签里是 file):指定要加载的文件或文件夹位置
relativeToChangelogFile :文件位置的路径是否相对于 root changelog 是相对路径,默认 false,即相对于 classpath 是相对路径。
changelog
另在 liquibase 文件夹下新建 changelogs 文件夹用来存放 changelog。
这里新建一个 changelog-1.0.xml
xmlns="http://liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://liquibase.org/xml/ns/dbchangelog http://liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
xmlns="http://liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://liquibase.org/xml/ns/dbchangelog
http://liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
如果你的项目一开始就用了 liquibase,那可以像上面这样写,把建表语句都写在 changelog 里。
如果一开始没用,后期想引入 liquibase,可以把以前的数据库导出成 sql,然后引入 sql 文件。方式如下:
xmlns="http://liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://liquibase.org/xml/ns/dbchangelog http://liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
xmlns="http://liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://liquibase.org/xml/ns/dbchangelog
http://liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
直接把项目导出的数据库文件 project.sql 通过 include 标签引进来。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~