后端服务在有数据库变更的情况下,如何不停服务发版

2023-05-11 15:37:17 +08:00
 NoKey
请教大家一个问题
比如我们后端服务器有 5 台,数据库是同一个
新版本要发布了,有数据库变更,比如我们把某个字段去掉了,或者改了名等
那么在发版前,需要先执行变更 sql ,这个 sql 一执行,就会影响所有服务
那么所有服务必须跟着都发版才行
否则部分功能会因为 sql 变更了执行失败
无法做到部分先升级验证,验证 ok 再升级剩下的
请假一下,有啥比较完善的方式处理这个问题呢,谢谢~
3765 次点击
所在节点    程序员
29 条回复
fantathat
2023-05-11 18:58:17 +08:00
厨房炸了锅,餐厅还能出来菜,神奇
xuelu520
2023-05-11 19:01:36 +08:00
第一次见已上线的服务改字段名的。
Pantheoon
2023-05-11 19:04:48 +08:00
第一次见已上线的服务删字段的
sadfQED2
2023-05-11 19:11:14 +08:00
第一次见已上线的服务发版不考虑兼容的
ytmsdy
2023-05-11 19:38:11 +08:00
还是老老实实停服务吧!涉及到改字段,好像都没法完美处理。
huzhizhao
2023-05-12 08:16:43 +08:00
改名字是因为闲着了吗
xxmaqzas
2023-05-12 10:54:30 +08:00
只增不删改(等服务运行稳定在统一把不用的字段删除?历史数据问题,不建议删除)
zagfai
2023-05-12 16:34:03 +08:00
这种平滑升级是一个很复杂的过程,都是按月为单位的变更。可以多库多表多写多读之类的方法,分步骤切换。
zagfai
2023-05-12 16:35:03 +08:00
至于说 online ddl ... 还是小心使用,基本没试过不出问题:—)

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

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

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

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

© 2021 V2EX