4

我们有一个使用 Spring/JPA/Hibernate 的 Web 应用程序。目前我们正在使用 SolidBase 进行数据库更改管理,这在托管部署模型中运行良好 - 但是我们现在正在迁移到非托管部署模型,用户将能够在其中下载 Web 应用程序。我们正在为 Web 应用程序构建一个“更新中心”类型的功能,并试图弄清楚我们应该如何应用数据库更改。

理想情况下,我希望应用程序在应用程序启动时应用任何挂起的数据库更改,并且我希望这是我们可以以编程方式编码的东西,但我不想重写 Hibernate 的 SchemaExport 功能来做到这一点。

是否有人对我们如何在我们的应用程序中最好地实现此功能有任何建议、模式或最佳实践?

是否有任何更新中心应用程序库可以解决我们的问题(我找不到一个)?

4

2 回答 2

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 这意味着该包将适用于任何受支持的数据库。更新程序还将支持对文件系统资源和数据本身的更新(与架构相反)

于 2012-12-14T19:26:40.960 回答
0

我不为 BitRock 工作。

这可能不是您正在寻找的,但我使用了 Bitrock 的 InstallBuilder来管理分布式应用程序的这些类型的更新。这与 PostgreSQL 团队使用的安装程序包相同。让它工作起来非常简单,而且头痛最小。尤其是与其他安装程序相比。

于 2012-12-14T15:29:49.150 回答