问题描述
|
我在日常编程任务中使用了Hibernate,发现它非常好。特别是,我喜欢它在开发时管理架构更新的方式,使我免于很多麻烦。
无论如何,他们在文档上写道,不建议在生产环境中推荐它。因此,当我在生产服务器上更新应用程序时,行业标准的方式是什么?我想到创建一个自动安装过程,该过程转储数据库内容(基本上是备份),然后从代码中调用休眠模式更新,然后对查询运行一些测试,依此类推。无论如何,周围有没有可以自动执行并经过良好测试的工具?
说出来! :)
谢谢。
解决方法
看看应对MySQL模式不断变化的需求的策略吗?对于类似的问题及其答案。
简而言之,一旦您拥有足够数量的数据并需要将其从一个模式迁移到另一模式,就需要编写SQL脚本来更改模式并移动/转换数据。
,看看Liquibase。本质上,它是数据库架构的版本控制系统。它也很好地与Hibernate集成。
,我个人认为此建议过于谨慎。我们在生产和开发中使用Hibernate自动更新功能已有很多年了,并且从未遇到过问题(是的,我们为许多大型系统和知名品牌提供服务)。
显然,您必须测试您的应用程序,以确保从一个版本升级到另一个版本时,Hibernate能够正确完成工作,但是其他所有软件方面也是如此。
您还必须知道自动更新可以做什么(例如,创建新表,添加新索引)和不能做什么(例如,删除表,删除约束)。再次说明,这些缺失的位可以很容易地用原始JDBC进行,而不是未经测试。