在这里我说说我的使用步骤,liquibase是用java开发的,当然必须安装jdk了,在这里jdk的安装方式我就不说了,关键说说liquibase的基本使用。我是在windows 10下使用的
一、下载liquibase-3.5.3-bin.zip包,我下的是最新的
下载后解压liquibase-3.5.3-bin.zip包,我解压到了D:\Tool\liquibase-3.5.3-bin这个目录下
二、配置环境变量
假设安装目录是D:\Tool\liquibase-3.5.3-bin。
配置环境变量,添加LIQUIBASE_HOME,值为D:\Tool\liquibase-3.5.3-bin。添加到 Path变量,编辑此变量,在其前面加%LIQUIBASE_HOME%;
三、创建SQL文件
在D:\Tool\liquibase-3.5.3-bin下创建一个Release0003-1.sql文件
一个SQL文件可以多个changeset、一个changeset可以额执行多条SQL语句,文件内容
--liquibase formatted sql
--changeset chenfj:Release0003-1
CREATE TABLE table3 (
id int(11) NOT NULL,
name varchar(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM;
ALTER TABLE table3 CHANGE id id INT( 11 ) AUTO_INCREMENT;
ALTER TABLE table3 CHANGE name firstname VARCHAR( 255 );
INSERT INTO table3 (id, firstname) VALUES (NULL, 'name1'),(NULL, 'name2'), (NULL, 'name3');
--rollback drop table table3;
格式化SQL文件
关于SQL语句的语法依赖于选择的数据库类型,以下语法仅适用于mysql为例。Liquibase是通过SQL注释“--”来标记标签的,每个SQL文件必须开头加入一下声明:
--liquibase formatted sql
Changesets变更集
每个变更集开始处都必须添加一些声明信息:
--changeset author:id attribute1:value1 attribute2:value2 [...]
其中,author:id是必须的,其他的参数可以使用默认值,暂不修改。每个变更集可以带一个或者多个SQL声明,默认使用“;”隔开,每个变更集生成一条对应的记录。
四、运行SQL文件
在D:\Tool\liquibase-3.5.3-bin\lib下放入mysql-connector-java-5.1.30.jar包
在命令行运行以下命令更新sql:
liquibase --changeLogFile=D:/Tool/liquibase-3.5.3-bin/Release0003.sql --driver=com.mysql.jdbc.Driver --classpath=D:/Tool/liquibase-3.5.3-bin/lib/mysql-connector-java-5.1.30.jar --url="jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8" --username=test --password=test update
回滚命令:
liquibase --changeLogFile=D:/Tool/liquibase-3.5.3-bin/Release0003.sql --driver=com.mysql.jdbc.Driver --classpath=D:/Tool/liquibase-3.5.3-bin/lib/mysql-connector-java-5.1.30.jar --url="jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8" --username=test --password=test rollbackToDate 2018-01-11 16:52:32