Dre*_*mer 7 java spring flyway
我目前的Spring 3.0项目正在与Flyway集成.
感谢谷歌网站,所以有我可以指望的文件.但不幸的是,没有太多关于与之融合的讨论JPA.
所以问题是:
如何整合Flyway persistence.xml?它是如何工作的?JPA提供程序每次都会进行auto generate架构更新,以便我们在之前或之后运行脚本?
我想到目前为止flyway的查询不支持HQL,那么是否有任何示例代码,然后我可以了解如何集成迁移事件?设计拦截器或新方面?在域级别上做什么?
任何提示都表示赞赏.提前致谢.
Flyway不支持JPA 和春天.它基本上按顺序运行您的SQL(而不是HQL)脚本并跟踪它们.并且做得好.它仍然与您如何使用数据库以及如何生成升级脚本无关.
但是,有希望.您的持久性提供程序很可能支持更新现有模式(我知道hibernate和eclipselink可以),在启动时运行ALTER和CREATE语句.迁移SQL脚本并不完美,它并不总是有效,但它是一个良好的开端.记录这些脚本,收集到SQL文件中,清理并用作V_*.sql提供给Flyway的文件.
更新:虽然没有对spring框架的直接支持,但您可以轻松地将其与现有的Spring应用程序集成.事实证明,这种方法适用于生产并且可以很好地发挥作用:
<bean id="flyway" class="com.googlecode.flyway.core.Flyway" init-method="migrate">
<property name="dataSource" ref="..."/>
...
</bean>
Run Code Online (Sandbox Code Playgroud)
额外奖励:它在Java配置(使用Scala)方面也很有用:
@Bean(initMethod = "migrate")
def flyway() = {
val fly = new Flyway()
fly.setDataSource(dataSource)
fly
}
Run Code Online (Sandbox Code Playgroud)