【发布时间】:2012-12-05 21:35:10
【问题描述】:
我们有一个使用 Spring/JPA/Hibernate 的 Web 应用程序。目前我们正在使用 SolidBase 进行数据库更改管理,这在托管部署模型中运行良好 - 但是我们现在正在迁移到非托管部署模型,用户将能够在其中下载 Web 应用程序。我们正在为 Web 应用程序构建一个“更新中心”类型的功能,并试图弄清楚我们应该如何应用数据库更改。
理想情况下,我希望应用程序在应用程序启动时应用任何挂起的数据库更改,并且我希望这是我们可以以编程方式编码的东西,但我不想重写 Hibernate 的 SchemaExport 功能来做到这一点。
对于我们如何在我们的应用程序中最好地实现此功能,是否有人有任何建议、模式或最佳实践?
是否有任何更新中心应用程序库可以解决我们的问题(我找不到一个)?
【问题讨论】:
-
也许您有充分的理由这样做。然而,这是我的两分钱。
如果您要在应用程序启动期间进行架构更新,则需要授予您的“应用程序/用户”帐户数据库所有者访问权限。这可能会暴露您的应用程序中的一些安全漏洞。我建议您不要在应用程序启动期间更改数据库架构。或者至少注意您使用的数据库连接帐户。 就我个人而言,我在应用程序之外进行所有数据库架构更新,即手动 - 但这只是我。 -
如果管理应用程序的每个人都恰好是 DBA,那就太好了 - 问题是最终用户将维护应用程序。我们需要向应用程序推送更新的能力,并且很可能这些应用程序更新的很大一部分将具有相应的架构更改。已经有一个数据用户和一个模式用户,模式用户只在应用程序启动时专门用于此任务。
标签: java sql hibernate jpa auto-update