您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

flyway的使用

2024/4/1 21:41:44发布23次查看
在频繁的工程实践中,服务端程序与数据库不断的更新,如果服务端和数据库部署不一致,经常性的会导致各种问题。为了解决这一问题,可行的方案之一就是让数据库随着服务端的版本而更新,flyway就是一种解决方案。 一. 目的 管理数据库更新。 二.方法 直接在ja
在频繁的工程实践中,服务端程序与数据库不断的更新,如果服务端和数据库部署不一致,经常性的会导致各种问题。为了解决这一问题,可行的方案之一就是让数据库随着服务端的版本而更新,flyway就是一种解决方案。
一. 目的
管理数据库更新。
二.方法直接在java工程中嵌入sql脚本。工程重新部署时,会自动更新数据库,保证数据库与代码同步,避免了手动更新数据库带来的弊病。
三.原理在数据库中创建了一个表schema_version,该表的最后记录为当前数据库版本。
四.步骤1.在pom文件中加入如下:
dependency>
  groupid>org.flywaydbgroupid>
 artifactid>flyway-coreartifactid>
 version>3.2.1version>
 dependency>
2.在dispatcher-servlet.xml中加入
bean id=flyway class=org.flywaydb.core.flyway depends-on=datasource lazy-init=false  init-method=migrate>
 property name=datasource ref=datasource/>
 property name=initonmigrate value=true />
 property name=validateonmigrate value=false />
 bean>
同时让其它数据库操作bean依赖于flyway这个bean,避免数据库未升级完毕已经进行数据库操作。
bean id=hibernate4annotatedsessionfactory
class=org.springframework.orm.hibernate4.localsessionfactorybean  depends-on=flyway>
bean id=transactionmanager class=org.springframework.orm.hibernate4.hibernatetransactionmanager  depends-on=flyway>
3.在resources下建立数据库脚本升级目录,请注意脚本命名方式
五.注意1.flyway不支持回滚,如果你增加了一个字段,然后又要删除这个字段,就只能写一个v2_6_0_1__delete_new_like_column.sql的脚本。
2.一旦使用flyway,就不要使用手动方式修改数据库,同时不得删除schema_version中数据。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product