为 Java 应用程序运行数据库迁移
Posted
技术标签:
【中文标题】为 Java 应用程序运行数据库迁移【英文标题】:Running DB migration for a Java app 【发布时间】:2012-08-16 20:58:37 【问题描述】:在 Heroku 上的推荐方法是什么?有什么最佳实践吗?比如工具等。
【问题讨论】:
你用的是什么持久化框架? 【参考方案1】:一个迟到的答案,但如果你没有使用 Play! (它有一个名为“Evolutions”的内置解决方案),我建议查看 liquibase (http://www.liquibase.org/)。从概念上讲,它的工作原理类似于 Play!进化或 Rails 迁移 - 模块化 DDL/DML 步骤,按顺序执行并随时间跟踪,以便维护数据库的活动历史记录。架构定义通过非常简单的 XML 格式定义,能够定义 SQL 语句、回滚步骤等。
它也可以连接到 Spring 应用程序上下文以在服务器启动时执行,这使其非常适合 Heroku。比如context.xml中的sn -p会在Spring启动时触发数据库升级分析:
<bean class="liquibase.integration.spring.SpringLiquibase" id="liquibase" lazy-init="false">
<property name="dataSource" ref="dataSource"/>
<property name="changeLog" value="classpath:META-INF/schema/db-changelog-master.xml"/>
</bean>
【讨论】:
以上是关于为 Java 应用程序运行数据库迁移的主要内容,如果未能解决你的问题,请参考以下文章