数据库架构升级清单
必须升级数据库模式才能使安装新版本的软件变得更加棘手.这样做最好的做法是什么?
我正在寻找一个行动项目的清单或时间表,如 > 8:30关闭应用程序 等等,显示如何最大限度地减少风险和停机时间.问题如: 如果出现问题,退出升级 特别感兴趣. 解决方法我有很多经验.我的应用程序是高度迭代的,模式更改频繁发生.我大概每2到3周进行一次生产发布,每个产品从我的FogBugz清单中清除50-100个产品.过去几年我们所做的每一个版本都需要架构更改来支持新功能.这样做的关键是在测试环境中进行多次修改,然后才能在实时服务器上实现. 我保留一个从模板复制的部署清单文件,然后对每个版本进行大量编辑,其中任何不符合规定的. 我有两个在数据库上运行的脚本,一个用于模式更改,一个用于可编程性(过程,视图等).更改脚本是手动编码的,具有procs的脚本通过Powershell脚本编写.更改脚本在关闭所有操作时运行(您必须选择一个使用最少量的用户的时间),并且手动运行命令,以防任何事情发生.我遇到的最常见的问题是添加一个由于重复的行而失败的唯一约束. 在准备集成测试周期时,我将在测试服务器上查看我的清单,就像该服务器是否生产一样.然后,除此之外,我得到一个生产数据库的实际副本(这是一个很好的时间去掉你的异地备份),并且我在一个恢复的本地版本上运行脚本(这也是很好的,因为它证明了我的最新的备份是声音).我在这里用一块石头杀死了很多鸟. 所以这是4个数据库总数: > Dev:所有更改都必须在变更脚本中进行,从不与工作室进行. 你真的真的需要在生产时做到正确.备份模式更改很难. 至于修补程序,我只会修复程序,而不是模式,除非它是一个非常孤立的变化,对于业务至关重要. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |