标签:
1.创建一个Maven项目
2.编辑当下的pom.xml,添加flyway依赖和Mysql依赖
...
com.googlecode.flyway
flyway-core
3.2.1
mysql
mysql-connector-java
5.1.6
......
3.整合flyway
现在我们可以将Flyway的代码放入项目中,并配置数据库,例如增加到默认生成的:src/main/java/foobar/App.java
packagefoobar;importcom.googlecode.flyway.core.Flyway;public classApp {public static voidmain(String[] args) {//创建Flyway实例
Flyway flyway = newFlyway();//设置数据库
flyway.setDataSource("jdbc:mysql://localhost:3306/foobar", "user", "pass");//开始迁移
flyway.migrate();
}
}
4.创建第一个数据迁移
创建数据迁移目录src/main/resources/db/migration,
执行命令mkdir -p src/main/resources/db/migration
创建我们的第一个数据迁移src/main/resources/db/migration/V1__Create_person_table.sql
CREATE TABLE person (
id INT,
name VARCHAR(100)
);
5.执行App.java
执行App.java(也可以直接在IDE中执行main方法)
mvn package exec:java -Dexec.mainClass=foobar.App -Dmaven.test.skip=true
如果你成功了,应该会得到如下信息
INFO: Creating Metadata table: `foobar`.`schema_version`
Feb27, 2014 12:20:18AM com.googlecode.flyway.core.command.DbMigrate migrate
INFO: Current version of schema `foobar`:<< Empty Schema >>Feb27, 2014 12:20:18AM com.googlecode.flyway.core.command.DbMigrate applyMigration
INFO: Migrating schema `foobar` to version1Feb27, 2014 12:20:18AM com.googlecode.flyway.core.command.DbMigrate logSummary
INFO: Successfully applied1 migration to schema `foobar` (execution time 00:00.194s).
6.继续添加数据迁移
假如我们现在需要增加第二个数据迁移,命名为:src/main/resources/db/migration/V2__Add_people.sql
INSERT INTO person (id, name) VALUES (1, ‘Axel‘);INSERT INTO person (id, name) VALUES (2, ‘Mr. Foo‘);INSERT INTO person (id, name) VALUES (3, ‘Ms. Bar‘);
执行命令
mvn package exec:java -Dexec.mainClass=foobar.App -Dmaven.test.skip=true
输出如下
Feb 27, 2014 12:25:00AM com.googlecode.flyway.core.command.DbMigrate migrate
INFO: Current version of schema `foobar`:1Feb27, 2014 12:25:00AM com.googlecode.flyway.core.command.DbMigrate applyMigration
INFO: Migrating schema `foobar` to version2Feb27, 2014 12:25:00AM com.googlecode.flyway.core.command.DbMigrate logSummary
INFO: Successfully applied1 migration to schema `foobar` (execution time 00:00.047s).
标签: