m939594960
V2EX  ›  问与答

线上在运营的程序 需要添加/修改很多功能的时候 数据库应该怎么处理

  •  1
     
  •   m939594960 · Jan 10, 2016 · 2308 views
    This topic created in 3952 days ago, the information mentioned may be changed or developed.
    线上在运营的程序
    需要添加 /修改很多功能的时候
    我要对数据库也进行大量的修改 数据库这方面我怎样进行修改 才能保证没有问题呢?
    3 replies  •  2016-01-10 19:29:23 +08:00
    bdbai
    bdbai
    Jan 10, 2016 via iPhone
    1
    用 ORM 和 migration ,上线只要跑一下命令就行,数据库操作交给框架。
    lecher
    lecher
    Jan 10, 2016
    2
    既然都这么问了,业务量应该不是很大的。
    1.数据库修改是否影响原有业务,如果影响,那说明业务量不大,做好备份挑个人少的时间升级就好了。
    2.程序修改造成的重启服务是否影响业务的功能?反正业务量不大,挑个半夜的时段,重启一下服务器好了。

    上面只是调侃,实际上大一点的系统升级功能都会考虑这几个问题。
    1.数据库升级的新业务是否影响旧功能,非优化性能的场景,尽可能不要去改动旧业务相关的数据库结构和配置。
    2.程序升级是否会修改旧业务的功能,修复 bug 除外,正常情况都尽可能兼容旧的业务不改动,同时做数据读写异常处理,保证即使新程序读写的是旧数据库也只是报友好的异常给用户而不是直接报错崩溃。
    这两个问题都解决了,新的数据库修改和代码更新测试确认没有问题才可能升级到线上的环境。一定要改的,都会做业务迁移,在新的服务器做好升级和数据迁移之后,可以无缝升级的业务就把旧的业务请求转发到新服务器上面。不可以的就选个时间锁住主数据库的写入功能,满足只读业务的情况下升级旧的数据库和代码。
    m939594960
    m939594960
    OP
    Jan 10, 2016
    3
    @bdbai @lecher 我大概是懂了 我细细琢磨一下 谢谢啦
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1311 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 20:24 · PVG 04:24 · LAX 12:24 · JFK 15:24
    ♥ Do have faith in what you're doing.