我们有一个使用Spring / JPA / Hibernate的Web应用程序。目前,我们正在使用SolidBase进行数据库更改管理,这在托管部署模型中运行良好 - 但我们现在正在迁移到非托管部署模型,用户可以在其中下载Web应用程序。我们正在为Web应用程序构建“更新中心”类型功能,并试图弄清楚应该如何应用数据库更改。
理想情况下,我希望应用程序在应用程序启动时应用任何挂起的数据库更改,我希望这是我们可以编写代码的代码,但我不想重写Hibernate的SchemaExport功能。
有没有人对我们如何在我们的应用程序中最好地实现此功能有任何建议,模式或最佳实践?
是否有任何更新中心应用程序库可以解决我们的问题(我找不到一个)?
答案 0 :(得分:1)
我在研究这篇文章时发现了这篇文章
http://www.infoq.com/news/upgrade-frameworks
这导致我发表这篇文章
http://www.jroller.com/mrdon/entry/transparent_sql_schema_migration_with
最终导致我使用Apache DdlUtils和jroller.com博客文章中提供的BeanFactory解决方案来解决这个问题。
这最终将成为可以放入任何应用程序的组件,无论是旧的还是新的,以在Web应用程序中实现更新功能。它将使用XML来应用数据库更新,并且使用DDL意味着该包将对任何受支持的数据库起作用。更新程序还将支持文件系统资源和数据本身的更新(而不是模式)
答案 1 :(得分:0)
我不适用于BitRock。
这可能不是您正在寻找的,但我使用InstallBuilder from Bitrock来管理分布式应用程序的这些类型的更新。这是PostgreSQL团队使用的相同安装程序包。让这项工作变得非常简单,只有极少的麻烦。特别是与其他安装程序相比时。