如何避免使用hibernate架构更新

时间:2011-04-14 12:18:04

标签: hibernate

我在日常编程任务中使用Hibernate,我发现它非常好。特别是我喜欢它在开发过程中管理模式更新的方式,这让我免于很多麻烦。

无论如何,他们在文档中写道,在生产环境中没有推荐它,这是可以理解的。因此,当我在生产服务器上更新应用程序时,可以采用行业标准的方式?我想过创建一个自动安装过程来转储数据库内容(基本上是一个备份),然后从代码调用hibernate架构更新,然后对查询运行一些测试等等。无论如何,是否有自动执行此操作并经过充分测试的工具?

说出来! :)

感谢。

3 个答案:

答案 0 :(得分:3)

看看Liquibase。它本质上是数据库模式的版本控制系统。它也是nicely integrates with Hibernate

答案 1 :(得分:2)

查看Strategies for dealing with constantly changing requirements for MySQL schemas?的类似问题及其答案。

简而言之,一旦您拥有合理数量的数据并需要将其从一个模式迁移到另一个模式,您就需要编写SQL脚本来改变模式并移动/转换数据。

答案 2 :(得分:0)

我个人认为这个建议过于谨慎。我们在生产和开发方面使用Hibernate自动更新功能已经很多年了,从来没有遇到任何问题(是的,我们迎合了许多大型系统和知名品牌)。

显然,你必须测试你的应用程序,以确保Hibernate在从一个版本升级到另一个版本时能够做正确的工作,但同样适用于所有其他软件方面。

您还必须了解自动更新可以执行的操作(例如,创建新表,添加新索引)以及不能执行的操作(例如,删除表,删除约束)。缺少的位在原始JDBC中相当容易实现,同样,并非没有测试。