专栏首页云捷易spring框架集成liquibase

spring框架集成liquibase

Liquibase是一个开源数据库变更管理工具,帮助技术团队跟踪、版本管理和部署数据库结构变更。以下介绍如何在spring框架集成liquibase。

首先,在pom.xml文件中加入对于liquibase的依赖:

<dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-core</artifactId>
    <version>3.8.4</version>
</dependency>

接下来定义bean:

<bean id="springLiquibase"
      class="liquibase.integration.spring.SpringLiquibase">
    <property name="dataSource" ref="dataSource"/>
    <property name="shouldRun" value="true"/>
    <property name="changeLog" value="classpath:db/changelog/db.changelog-master.xml"/>
</bean>

然后在resources文件夹下的db/changelog/文件夹创建db.changelog-master.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.1.xsd">

    <include file="db/changelog/REQ-0.xml"/>
</databaseChangeLog>

最后定义变更内容,保存在resources文件夹下的db/changelog/文件夹,文件名为REQ-0.xml,文件内容为:

<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-ext
   http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
   http://www.liquibase.org/xml/ns/dbchangelog
   http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
    <changeSet author="yourname" id="REQ-0">
        <createTable tableName="test_table">
            <column autoIncrement="true" name="id" type="INT">
                <constraints nullable="false" primaryKey="true"/>
            </column>
            <column name="table_name" type="varchar(50)">
            </column>
        </createTable>
    </changeSet>
</databaseChangeLog>

完成以上步骤后,启动应用时会自动执行上面定义的第一个变更。如果有新的变更需求,参照REQ-0的方式建立、引入变更文件。

原文链接:http://www.cloudedi.cn/zh-cn/blog/spring-with-liquibase.html

我来说两句

0 条评论
登录 后参与评论

相关文章

  • asciidoc生成中文PDF

    使用asciidoctor或者org.asciidoctor.maven插件生成pdf文件时,会出现中文乱码。使用以下方法,不需要安装asciidoctor软件...

    云捷易
  • 单源最短路径解析

    1,设0为源点,建立两个集合S,T,S保存节点0,T集合保存节点1,2,3,4。(S,T是官方定义名称,个人理解S应该是source的缩写,T是target的缩...

    Kiba518
  • 分治算法

    在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题,直到最...

    羊羽shine
  • 数据结构题集(严书)图 常见习题代码

    7.25 /*假设对有向图中n个顶点进行自然编号并以三个数组s[1..max],fst[1..n],lst[1..n]表示之其中数组s存放每个顶点的 后继顶...

    glm233
  • XXE漏洞挖掘分享

    XXE漏洞挖掘 基础知识 DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。DTD 可以在 XML 文档内声明,也可以外部引用。 引用外部DT...

    用户1467662
  • Spark Streaming 2.2.0 Input DStreams和Receivers

    输入 DStreams 表示从 source 中获取输入数据流的 DStreams。在入门示例中,lines 表示输入DStream,它代表从netcat服务器...

    smartsi
  • python3学习之递归函数

    py3study
  • React进阶篇(十)性能优化

    尽量把style提到组件之外,不要直接写在JSX里面。因为如果style里直接定义样式对象,会导致组件每次渲染都要创建一个新的style对象。

    娜姐
  • LeetCode 387. 字符串中的第一个唯一字符

    给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

    freesan44
  • Link list achieve Phone_Contacts

    最近,数据结构可上学习了链表线性表,并且用线性表实现了简单的手机通讯录,并用C语言和python语言都实现了,基本理论是一样的,贵在实践。记录一下~

    AngelNH

扫码关注云+社区

领取腾讯云代金券