网易首页 > 网易号 > 正文 申请入驻

Node.js生产迁移:8分钟宕机变0,这3步操作救了我

0
分享至


去年双11,某电商平台的订单表加了个字段,整个支付链路挂了8分钟。用户卡在付款页,客服电话被打爆,技术负责人当晚写了辞职信——虽然最后没交。

这事不稀奇。数据库迁移是Node.js生产环境最高风险的操作,没有之一。开发环境ALTER TABLE重启服务器就完事,生产环境10万用户同时在线,一个ADD COLUMN NOT NULL能锁死整张表。更坑的是,新旧代码同时跑,一个写老字段一个写新字段,数据直接乱套。

大部分团队怎么解决?祈祷,加凌晨3点的维护窗口。本文讲怎么用工程手段替代祈祷。

「扩展/收缩」模式:把一次作死拆成三次安全操作

零停机迁移的核心叫expand/contract pattern(扩展/收缩模式),也有人叫并行变更。它把任何破坏性schema改动拆成三次独立部署,每次都对线上代码安全。

第一次部署:只加新结构,不动老的。比如给users表加display_name字段,设成nullable——nullable列不会锁表,这是关键。此时老代码只写username字段,新代码同时写两个字段,两边互不干扰。

第二次部署:跑后台任务回填数据。不是一次性UPDATE全表,而是分批处理。上面代码里的backfill脚本每次只拿1000行,改完歇100毫秒,把数据库负载压到最低。这步跑完,所有老数据都有了新字段的副本。


第三次部署:确认所有代码都读新字段后,DROP COLUMN username。这时候删列是安全的,因为已经没有任何代码引用它了。

三次部署,零停机。代价是流程变长,但比起8分钟宕机,这账很好算。

工具选型:为什么node-pg-migrate能活到现在

Node.js生态里迁移工具不少,node-pg-migrate是PostgreSQL阵营活得最久的。它支持JS/TS写迁移文件,DSL足够表达复杂操作,最重要的是——它不会替你隐藏SQL

很多ORM的迁移工具封装得太厚,你都不知道背后发了什么语句。生产环境需要的是可控性,不是魔法。node-pg-migrate让你手写SQL,但帮你管版本号、管执行顺序、管事务回滚。

安装就一行:npm install node-pg-migrate pg。配置走环境变量,CI/CD里塞个DATABASE_URL就能跑。

但工具只是工具。我见过团队用最好的迁移工具,照样在凌晨2点回滚。问题出在流程,不在工具。


生产环境的隐藏雷区:那些教程不会告诉你的

第一,大表的索引操作。PostgreSQL 11之前,ADD INDEX会锁表;之后有了CONCURRENTLY选项,但代价是建索引变慢、CPU飙高。你需要在迁移脚本里显式指定CREATE INDEX CONCURRENTLY,然后盯着监控等它跑完。

第二,外键约束。ADD FOREIGN KEY默认会锁两张表。正确做法是先建索引,再单独加约束,或者干脆用NOT VALID + VALIDATE CONCURRENTLY分两步走。

第三,代码与schema的版本对齐。蓝绿部署时,老代码跑在新schema上,新代码跑在老schema上,这是常态。你的代码必须能容忍这种错位——读数据时fallback到老字段,写数据时双写。这要求业务代码有防御性设计,不是迁移工具能解决的。

有个细节很多人忽略:回填脚本跑完之后,一定要校验数据一致性。写个对账脚本,抽查username和display_name是否匹配,不匹配就告警。我见过回填任务中途失败,团队没发现,三个月后清理旧字段时丢了一千多条用户昵称。

最后,维护窗口没死透。有些操作就是没法在线做,比如PG 14之前的REINDEX TABLE。这时候诚实承认,提前公告,比假装自己能零停机然后翻车要强。

某金融科技公司的SRE负责人跟我说过一句话:「我们花了两年时间,把迁移窗口从每月一次降到每季度一次,但从来没敢说自己能零停机。」这大概是务实的技术团队该有的心态——追求零停机,但不为零而零。

你们团队最近一次生产迁移是什么时候?有没有遇到过新老代码抢写同一行数据的诡异bug?

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
蔚来李斌直言:今年车卖不好,公司就没了,形势很严重了!

蔚来李斌直言:今年车卖不好,公司就没了,形势很严重了!

老特有话说
2026-05-11 16:12:23
湖人目前能给字母哥的最优交易报价出炉!雄鹿依旧看不上

湖人目前能给字母哥的最优交易报价出炉!雄鹿依旧看不上

夜白侃球
2026-05-13 10:47:58
山东新首富,造出苏州第一个10000亿

山东新首富,造出苏州第一个10000亿

融资中国
2026-05-13 10:30:14
房产圈最近最大的瓜,当属贝壳2025年财报的发布——没有惊喜,全是惊吓

房产圈最近最大的瓜,当属贝壳2025年财报的发布——没有惊喜,全是惊吓

每日质量报道网
2026-05-11 12:04:19
8秒违例+被哈珀大帽!华子拉胯战遭喷非超巨 狼媒:该引进KD字母

8秒违例+被哈珀大帽!华子拉胯战遭喷非超巨 狼媒:该引进KD字母

颜小白的篮球梦
2026-05-13 11:05:39
光地皮就值2个亿的美国驻华大使馆,为何修成一座封闭式碉堡?

光地皮就值2个亿的美国驻华大使馆,为何修成一座封闭式碉堡?

贱议你读史
2026-05-07 14:58:39
天价转会费+冲金球!阿尔瓦雷斯有望以1.5亿欧空降大巴黎?

天价转会费+冲金球!阿尔瓦雷斯有望以1.5亿欧空降大巴黎?

田先生篮球
2026-05-12 22:10:29
青海17岁女学生溺亡!主动去的桥边,知情人曝猛料,恐不止是意外

青海17岁女学生溺亡!主动去的桥边,知情人曝猛料,恐不止是意外

北纬的咖啡豆
2026-05-12 11:29:42
回主场就大胜,马刺4个策略奏效,6人上双打疯,系列赛大局定了

回主场就大胜,马刺4个策略奏效,6人上双打疯,系列赛大局定了

体坛大辣椒
2026-05-13 10:49:28
广东或迎今年以来最强一次降雨过程!将进入“龙舟水”集中期

广东或迎今年以来最强一次降雨过程!将进入“龙舟水”集中期

南方都市报
2026-05-13 10:18:12
父亲病危后女子请假陪护屡遭拒,父亲去世当天她因“旷工”被公司辞退,此前公司还向其发送旷工催告函;法院:公司于期限内支付70000元

父亲病危后女子请假陪护屡遭拒,父亲去世当天她因“旷工”被公司辞退,此前公司还向其发送旷工催告函;法院:公司于期限内支付70000元

极目新闻
2026-05-13 07:57:10
卫健委正式通知:放假1天!不占法定假和公休

卫健委正式通知:放假1天!不占法定假和公休

医眼观察
2026-05-12 16:08:27
央视和国际足联谈崩!越南1500万美元买了,中国8000万美元嫌贵?

央视和国际足联谈崩!越南1500万美元买了,中国8000万美元嫌贵?

嫹笔牂牂
2026-05-12 09:53:06
这一次,被日本网友骂废物的张本智和,终究为父母的荒唐买了单

这一次,被日本网友骂废物的张本智和,终究为父母的荒唐买了单

阿讯说天下
2026-05-12 15:16:49
炸锅!穆里尼奥回归皇马引爆最大危机,头号巨星离队进入倒计时

炸锅!穆里尼奥回归皇马引爆最大危机,头号巨星离队进入倒计时

奶盖熊本熊
2026-05-13 04:31:27
百亿富家女留学英国,倒贴软饭男被打致死,前雨润总裁之女被杀案

百亿富家女留学英国,倒贴软饭男被打致死,前雨润总裁之女被杀案

汉史趣闻
2026-03-17 10:00:51
美方放风:这一点,中美都同意

美方放风:这一点,中美都同意

观察者网
2026-05-13 10:44:10
3比2!文班亚马27分17板3帽!亲手打爆四届DPOY

3比2!文班亚马27分17板3帽!亲手打爆四届DPOY

篮球教学论坛
2026-05-13 11:27:32
大S年轻时房间曝光,太过诡异引人不适,难怪有人曾说活不过50岁

大S年轻时房间曝光,太过诡异引人不适,难怪有人曾说活不过50岁

草莓解说体育
2026-05-11 20:49:33
西甲欧冠5席位全出炉!贝蒂斯时隔20年再参赛,26岁安东尼终圆梦

西甲欧冠5席位全出炉!贝蒂斯时隔20年再参赛,26岁安东尼终圆梦

我爱英超
2026-05-13 05:38:11
2026-05-13 12:20:49
硅屿手记
硅屿手记
有态度网友ytd
4053文章数 22关注度
往期回顾 全部

科技要闻

谷歌剧透安卓重大升级 Gemini深度集成底层

头条要闻

特朗普访华随行名单:次子夫妇、鲁比奥随行 夫人缺席

头条要闻

特朗普访华随行名单:次子夫妇、鲁比奥随行 夫人缺席

体育要闻

14年半,74万,何冰娇没选那条更安稳的路

娱乐要闻

巩俐用中文宣布戛纳开幕,彰显国际地位

财经要闻

深圳夫妻囤芯片,身家飙涨320亿

汽车要闻

吉利银河“TT”申报图曝光 电动尾翼+激光雷达

态度原创

艺术
时尚
游戏
房产
军事航空

艺术要闻

贺羽 2026油画写生新作

没八卦、纯素人、不惊艳,可她赢麻了

单机成"时代弃子"!重磅IP新作恐怕无了 得卖1500万份

房产要闻

海口禁摩,3.3万名车主要慌了!

军事要闻

知情人士披露:美国或考虑恢复对伊朗军事行动

无障碍浏览 进入关怀版