V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
o618
V2EX  ›  问与答

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

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

    可惜必须停服务,数据库太难处理,其他都好。
    kingwkb
        7
    kingwkb  
       2014-02-10 14:47:14 +08:00
    Rails Migration 已经帮你做好一切,包括回滚
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2312 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:22 · PVG 13:22 · LAX 22:22 · JFK 01:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.