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

2016-01-10 18:33:15 +08:00
 m939594960
线上在运营的程序
需要添加 /修改很多功能的时候
我要对数据库也进行大量的修改 数据库这方面我怎样进行修改 才能保证没有问题呢?
1880 次点击
所在节点    问与答
3 条回复
bdbai
2016-01-10 18:44:11 +08:00
用 ORM 和 migration ,上线只要跑一下命令就行,数据库操作交给框架。
lecher
2016-01-10 18:50:25 +08:00
既然都这么问了,业务量应该不是很大的。
1.数据库修改是否影响原有业务,如果影响,那说明业务量不大,做好备份挑个人少的时间升级就好了。
2.程序修改造成的重启服务是否影响业务的功能?反正业务量不大,挑个半夜的时段,重启一下服务器好了。

上面只是调侃,实际上大一点的系统升级功能都会考虑这几个问题。
1.数据库升级的新业务是否影响旧功能,非优化性能的场景,尽可能不要去改动旧业务相关的数据库结构和配置。
2.程序升级是否会修改旧业务的功能,修复 bug 除外,正常情况都尽可能兼容旧的业务不改动,同时做数据读写异常处理,保证即使新程序读写的是旧数据库也只是报友好的异常给用户而不是直接报错崩溃。
这两个问题都解决了,新的数据库修改和代码更新测试确认没有问题才可能升级到线上的环境。一定要改的,都会做业务迁移,在新的服务器做好升级和数据迁移之后,可以无缝升级的业务就把旧的业务请求转发到新服务器上面。不可以的就选个时间锁住主数据库的写入功能,满足只读业务的情况下升级旧的数据库和代码。
m939594960
2016-01-10 19:29:23 +08:00
@bdbai @lecher 我大概是懂了 我细细琢磨一下 谢谢啦

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

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

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

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

© 2021 V2EX