1
bdbai 2016-01-10 18:44:11 +08:00 via iPhone
用 ORM 和 migration ,上线只要跑一下命令就行,数据库操作交给框架。
|
2
lecher 2016-01-10 18:50:25 +08:00
既然都这么问了,业务量应该不是很大的。
1.数据库修改是否影响原有业务,如果影响,那说明业务量不大,做好备份挑个人少的时间升级就好了。 2.程序修改造成的重启服务是否影响业务的功能?反正业务量不大,挑个半夜的时段,重启一下服务器好了。 上面只是调侃,实际上大一点的系统升级功能都会考虑这几个问题。 1.数据库升级的新业务是否影响旧功能,非优化性能的场景,尽可能不要去改动旧业务相关的数据库结构和配置。 2.程序升级是否会修改旧业务的功能,修复 bug 除外,正常情况都尽可能兼容旧的业务不改动,同时做数据读写异常处理,保证即使新程序读写的是旧数据库也只是报友好的异常给用户而不是直接报错崩溃。 这两个问题都解决了,新的数据库修改和代码更新测试确认没有问题才可能升级到线上的环境。一定要改的,都会做业务迁移,在新的服务器做好升级和数据迁移之后,可以无缝升级的业务就把旧的业务请求转发到新服务器上面。不可以的就选个时间锁住主数据库的写入功能,满足只读业务的情况下升级旧的数据库和代码。 |
3
m939594960 OP |