一个已经上线运营的网站,后续加功能涉及到数据库的更改,如何操作比较合理?

2014-02-10 10:38:29 +08:00
 o618
5228 次点击
所在节点    问与答
7 条回复
Livid
2014-02-10 10:50:54 +08:00
用文档记录所有要在线上进行的更新,然后按照文档执行。这份文档有靠谱同事把关审核。把执行结果也记录到文档。并且,最好稍微思考一下如果执行失败的回退方案是什么。
laomo
2014-02-10 11:27:18 +08:00
以前给银行做开发,都是在测试环境写好升级脚本和回滚脚本。升级上线是如果出现问题,立即回滚,保证不影响正常使用
jianghu52
2014-02-10 11:27:59 +08:00
我所接触到的项目有过这么一个经历,他们的做法是先做一个短时间段的固定IP段的测试,然后把数据手工同步到老库里面,然后逐渐延长时间段,一般是要跑大概1个月左右,然后再全部跑新库,最后老库的数据一直要同步半年以上,才放弃,同时这两个库都是raid备份的。
workaholic
2014-02-10 11:38:13 +08:00
类似于@Livid , 最重要的是提前备份。 我这里是写一个“上线单”,里面记录所有的变更细节,变更那些表,执行哪些sql,覆盖哪些文件(目录的差异包),并写上更新文件的md5校验值。之后打包发给运维,运维拿到经过审核后就直接用差异包覆盖线上的相应目录,这样变更的文件就更新了。
SatFeb1
2014-02-10 11:41:37 +08:00
Rails Migration
loading
2014-02-10 14:38:58 +08:00
nginx直接切换到新地址,数据保持好。

可惜必须停服务,数据库太难处理,其他都好。
kingwkb
2014-02-10 14:47:14 +08:00
Rails Migration 已经帮你做好一切,包括回滚

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/99524

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX