在Heroku上为Java应用程序运行数据库迁移的推荐方法是什么?任何最佳做法?喜欢工具等。
答案 0 :(得分:3)
迟到的答案,但如果你没有使用Play! (它有一个名为“Evolutions”的内置解决方案),我建议查看liquibase(http://www.liquibase.org/)。从概念上讲,它就像Play一样! evolutions或Rails迁移 - 按顺序执行并随时间跟踪的模块化DDL / DML步骤,以便维护db的活动历史记录。模式定义通过非常简单的XML格式定义,具有定义SQL语句,回滚步骤等的能力。
它可以连接到Spring应用程序上下文,以便在服务器启动时执行,这使它非常适合Heroku。例如,context.xml中的代码片段将在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>