数据库(在这种情况下是MySQL)对Hibernate的生存(数据,架构......)有什么变化?
我问这个是因为Hibernate的停机时间为零。
更改数据库,将应用服务器拆分为两个群集,在其中一个群集上重新部署应用程序并切换应用程序。
由于 斯蒂芬
答案 0 :(得分:1)
我将从个人经验中回答这个问题,而不是对hibernate的任何特殊见解。所以带上一粒盐。看起来也是一个模糊的问题,添加适当的评论。 :)
首先,更改/添加/删除未在hibernate中映射的模式的东西永远不会导致任何问题。所有hibernate确实会生成查询,因为它会将大量内容转换为SQL,只要这些查询继续有效,您的应用就会继续工作。这意味着向表中添加列或添加表不是问题,删除未映射的列也不是问题等等。
更有问题的是对映射的内容的更改。假设您将数字(10,0)更改为数字(11,0),这通常会起作用。如果您开始执行诸如将CHAR(1)字段更改为BIT字段或类似字段之类的内容,则需要对hibernate映射进行某些更改,这将使现有部署失败。这是常识。如果你必须做这样的更改,在常规数据库服务器上执行ALTER TABLE可能会锁定表,所以重新启动应用程序不是你最大的问题。
在高可用性下处理主要模式更改并不是hibernate直接处理的问题。 Hibernate假定传统的关系数据库,其中模式更改通常非常昂贵。
你提到的其他三个问题: