这似乎是一个被忽视的领域,可以真正使用一些洞察力.您的最佳做法是:
进行升级程序
在出现错误时退出
同步代码和数据库更改
在部署之前进行测试
修改表的机制
等等...
liquibase.org:
它理解hibernate的定义.
它比hibernate生成更好的架构更新sql
它记录已对数据库进行的升级
它处理两步更改(即删除列"foo",然后将不同的列重命名为"foo")
它处理条件升级的概念
开发人员实际上是在监听社区(如果你不在"in"人群中或者是新手,那么hibernate也是如此 - 你基本上被忽略了.)
http://www.liquibase.org
意见
应用程序永远不应该处理架构更新.这是一场等待发生的灾难.数据比应用程序更长,一旦多个应用程序尝试使用相同的数据(例如生产应用程序+报告应用程序),他们就有可能使用相同的基础公司库......然后两个程序都决定做自己的数据库升级......有乐趣的是一塌糊涂.