liquibase入门实战

来源:互联网 发布:java中cipher用法 编辑:程序博客网 时间:2024/06/18 11:36

liquibase说白了就是一个将你的数据库脚本转化为xml格式保存起来,其中包含了你对数据库的改变,以及数据库的版本信息,方便数据的升级和回滚等操作。

当然最重要的一点还是liquibase支持多种类型的数据库(我了解,目前市面上的主流关系型数据库都是OK的),也就是方便数据迁移。

废话不多说,直接上干货:

1.首先你需要引入liquibase的maven插件:

            <plugin>                <groupId>org.liquibase</groupId>                <artifactId>liquibase-maven-plugin</artifactId>                <version>3.5.1</version>                <configuration>                    <!--指定数据库连接-->                    <propertyFile>${project.basedir}/src/main/resources/rq/liquibase.properties</propertyFile>                    <!--指定执行主文件-->                    <changeLogFile>${project.basedir}/src/main/resources/rq/shiro-demo_${project.version}-now.xml</changeLogFile>                    <outputChangeLogFile>${project.basedir}/src/main/resources/rq/shiro-demo_${project.version}-now.xml</outputChangeLogFile>                    <!-- 是否需要弹出确认框-->                    <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>                    <!--输出文件的编码-->                    <outputFileEncoding>UTF-8</outputFileEncoding>                    <!--执行的时候是否显示详细的参数信息-->                    <verbose>true</verbose>                    <!--是否每次都重新加载properties-->                    <propertyFileWillOverride>true</propertyFileWillOverride>                    <rollbackTag>${project.version}</rollbackTag>                    <tag>${project.version}</tag>                </configuration>            </plugin>

2.接着,你的数据库连接驱动当然不能忘记了:

        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>5.1.37</version>        </dependency>
注意:当你的jdbc驱动版本高于6.0.3版本的时候会出现一个异常,会报一直找不到列名,将版本改为更低版本的就OK了。

3.然后呢,你是否注意到上面的一些配置文件了:

3.1 propertyFile  指明的是你对应的数据库配置文件的地址:具体配置如下: 

url=XXXdriver=XXXusername=XXXpassword=XXX
3.2  changeLogFile:你当前所执行的liquibase命令所指定的changeLog文件地址
3.3 outputChangeLogFile: 当你生成changeLog的时候的文件的输出路径
3.4 rollbackTag: 执行回滚命令时,需要回滚到的数据库版本
3.5 tag  执行tag命令式,给数据库版本打上的标签(一般和项目的版本是同步的)


最常用的命令说明:

update(将xml的改变更新到数据库)

rollback(回滚到某一版本或者某一时刻,必须要带上rollbackTag参数)

dbDoc (生成数据库文档)

dropAll(慎用,清空当前数据库,包括liquibase的版本信息)

generateChangeLog(根据数据库反向生成changeLog文件)

tag(为当前数据库打上标签)


我所知道的最基础的就是这些了,更多的东西需要自己去慢慢摸索了。




1 0