数据库版本管理工具flyway

引入flyway_core  jar包java

java 代码实现spring

 

public class FlywayMigration {sql

  @Resource
  private DataSource dataSource;this

public void setDataSource(DataSource dataSource) {
  this.dataSource = dataSource;
}编码

public void migration() {
  Flyway flyway = new Flyway();
  flyway.setDataSource(dataSource);code

  flyway.setInitOnMigrate(true);xml

  flyway.setTable("schemas_version");// 设置存放flyway metadata数据的表名it

  // 设置flyway扫描sql升级脚本,java升级脚本的目录路径或包路径
  flyway.setLocations("database", "com.navinsight.holoviewer.back.transverse.util");io

  flyway.setEncoding("UTF-8");// 设置sql脚本文件的编码class

  flyway.setValidateOnMigrate(true); // 设置执行migrate操做以前的validation行为

  try {
  flyway.migrate();
  } catch (Exception e) {
  flyway.repair();
  e.printStackTrace();
  }

  }

}

 

sql文件命名规范:V+版本号+两个_+描述+.sql

 

在Spring 中根据上面实现的类来定义(实例化)一个bean

<bean id="flywayMigration" class="com.kedacom.flywaydemo.FlywayMigration" init-method="migrate">
	<property name="dataSource" ref="dataSource" />
</bean>

若是启动有问题,能够设置:

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" depends-on="flywayMigration">
	<property name="dataSource" ref="dataSource" />
</bean>

<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" depends-on="flywayMigration">
	<property name="dataSource" ref="dataSource" />
</bean>
相关文章
相关标签/搜索