介绍flyway这个数据库迁移的文章很多,但是没有针对最新3.0版本的配置,现在放出一份spring环境下3.0的配置方式
1.maven
<dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> <version>3.0</version> </dependency>
2.spring配置文件
注意的是如果有持久层框架需要在flyway启动后运行,即需要depends-on="flyway"
<!-- flyway配置 --> <bean id="flyway" class="org.flywaydb.core.Flyway" init-method="migrate"> <property name="dataSource" ref="dataSource"/> <property name="encoding" value="UTF-8"/> <property name="table" value="MY_SCHEMA_VERSION"/> <property name="locations" value="db/migration"/> <property name="initOnMigrate" value="true"/> <property name="initVersion"> <bean class="org.flywaydb.core.api.MigrationVersion" factory-method="fromVersion"> <constructor-arg value="0"/> </bean> </property> </bean> <!-- MyBatis配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" depends-on="flyway"> ... </bean>
3.1 版本initOnMigrate改成baselineOnMigrate,initVersion改成baselineVersion
<!-- flyway配置 --> <bean id="flyway" class="org.flywaydb.core.Flyway" init-method="migrate"> <property name="dataSource" ref="dataSource"/> <property name="encoding" value="UTF-8"/> <property name="table" value="LEARN_TEST_SCHEMA_VERSION"/> <property name="locations" value="db/migration"/> <property name="baselineOnMigrate" value="true"/> <property name="baselineVersion" > <bean class="org.flywaydb.core.api.MigrationVersion" factory-method="fromVersion"> <constructor-arg value="0"/> </bean> </property> </bean>
3.脚本文件
根据上面的配置可以看到需要在db/migration创建一个 Vx_x_x__name.sql的文件(x是版本,最后一个版本号和文件名中间是两个下划线,文件名之间也用下划线连接),位置和版本号开始信息均配置在配置文件中
内容为DML或DDL均可。