数据库文件版本管理工具flyway

flyway 是一个敏捷工具,用于数据库的移植。采用 Java 开发,支持所有兼容 JDBC 的数据库。

主要用于在你的应用版本不断升级的同时,升级你的数据库结构和里面的数据。

官方网站:http://flywaydb.org/

支持俩种模式迁徙:

1、基于sql文件迁徙:http://flywaydb.org/documentation/migration/sql.html

2、基于java文件迁徙:http://flywaydb.org/documentation/migration/java.html

在项目中我们的使用方式为:

1.数据表的完整性由JPA完成,不能手动的执行字段更新及删除操作。

2.数据初始化、限制的维护由flyway完成。

 

可以以spring管理flyway框架,或者说相结合。

在项目源码包中:

路径为 :db/migration   【如果不喜欢可以自己根据配置来命名位置】

命名规范:

1、前缀(可配置,默认值:V)

2、版本(以点或下划线区分开来,只要你喜欢,你可以使用很多地方)

3、分隔符(两个下划线)

4、描述(下划线或空格分开)

5、后缀(可配置,默认情况下:SQL)

 

与spring管理配置

 

[html]  view plain copy
 
  1. <bean id="flyway" class="com.googlecode.flyway.core.Flyway" init-method="migrate">  
  2.     <property name="dataSource" ref="..."/>  
  3.     ...  
  4. </bean>  
  5.   
  6. <!-- The rest of the application (incl. Hibernate) -->  
  7. <!-- Must be run after Flyway to ensure the database is compatible with the code -->  
  8. <bean id="sessionFactory" class="..." depends-on="flyway">  
  9.     ...  
  10. </bean>  



 

把dataSource 配置你的dataSource 、sessionFactory 依赖flyway就可以了。

关于flyway 的bean 里的init-method 方法。

第一次可能需要你改为init方法 初始化 schema_version表。

之后改为migrate就可以了。

 

注意:flyway不支持版本回滚。(需手动,比较悲剧的一点)

 

以后数据多改栏位、或者类型的就不用来回通知研发人员了。

直接写个版本sql文件就可以了,项目启动时候会查看哪个执行过哪个没执行。

flyway直接会往高版本迁徙。

 

flyway其他参考网址:

http://casheen.iteye.com/blog/1749916

http://shuzheng5201314.iteye.com/blog/2044517

 

猜你喜欢

转载自lpyyn.iteye.com/blog/2245367