liquibase是针对开发过程中数据库表或者字段变更而进行版本控制的工具。(函数和存储过程未使用过)。
1. 应用场景:
开发人员A被分配一个功能模块后,创建表teacher,有三个字段id,name,stu_no。模块完成后,根据需求,teacher表会新增,删除某些字段,甚至删除teacher表。如果当前项目只有开人员A,则数据库变更记录还算清晰,然而现实开发过程,有多名发开协同工作,同时对数据库进行DDL,DML操作。借助liquibase后,则可以对数据库中每张表进行版本记录,且liquibase是支持回滚到某一个更新点的。
2. 配置前准备:
2.1 首先明确自己应用的项目,我的是MAVEN项目,所以不需要去官网下载,直接在自己项目下的pom.xml文件配置即可。
2.2 liquibase官网:http://www.liquibase.org/index.htm,上面有很个Get Started,可以先看下,目前最新版本是3.5.3。
3. 配置步骤(MAVEN)
1) 配置Liquibase数据库连接信息文件,文件名称随意,当前文件名为liquibase.properties,这个文件到时需要在pom.xml中使用。示例如下:
contexts: 名字任意
changeLogFile: 这里配置的就是用户需要更新数据库的xml文件,里面的内容可以直接写sql,我们后续再配置这个文件
driver:对应数据库的驱动,看用什么数据库了。
url: jdbc数据库连接字段串
username: 数据库用户名
password: 数据库密码
verbose: true//默认用这个值
dropFirst: false //默认用这个值,具体作用查官网
2) 配置pom.xml
在pom.xml的写入如下信息
<</span>plugin>
<</span>groupId>org.liquibase</</span>groupId>
<</span>artifactId>liquibase-maven-plugin</</span>artifactId>
<</span>version>3.5.3</</span>version>
<</span>configuration>
<</span>promptOnNonLocalDatabase>false</</span>promptOnNonLocalDatabase>
<</span>propertyFileWillOverride>true</</span>propertyFileWillOverride>
<</span>logging>debug</</span>logging>
<</span>propertyFile>${basedir}/src/main/profiles/${config.dir}/liquibase.properties</</span>propertyFile>
</</span>configuration>
<</span>executions>
<</span>execution>
<</span>phase>process-resources</</span>phase>
<</span>goals>
<</span>goal>update</</span>goal>
</</span>goals>
</</span>execution>
</</span>executions>
</</span>plugin>
//版本号可以自由替换。配置的即是第一步配置好的数据库连接信息文件。POM文件配置完毕好后,即可用maven命令下载所需包了。
3)配置用于sql更新的xml文件,就是liquibase.properties中的changelog.xml,先贴出示例: