From 704c3f6495f76b8aba6f95f1d7fdc9e732d544b0 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 1 Sep 2026 16:41:17 +0800 Subject: [PATCH] =?UTF-8?q?docs(deploy):=20=E6=93=8D=E4=BD=9C=E9=A1=BA?= =?UTF-8?q?=E5=BA=8F=E9=93=81=E5=BE=8B=E6=94=B9'=E5=85=88=E5=BA=93?= =?UTF-8?q?=E5=90=8E=E7=A0=81=E5=86=8D=E9=87=8D=E5=90=AF'=E2=80=94?= =?UTF-8?q?=E2=80=94=E5=85=88=E4=BB=A3=E7=A0=81=E5=90=8E=E5=BA=93=E6=92=9E?= =?UTF-8?q?Unknown=20column=E5=B4=A9=E6=BA=83=E5=AE=9E=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/METHODOLOGY.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/deploy/METHODOLOGY.md b/deploy/METHODOLOGY.md index 0a3c794..d65b532 100644 --- a/deploy/METHODOLOGY.md +++ b/deploy/METHODOLOGY.md @@ -74,21 +74,27 @@ cd /d/doit/pipeline-app ### 第 2 步:操作(按序执行增量) +**顺序铁律:先库后码再重启**。新代码可能引用新列/新表,代码先上会在重启后 +`Unknown column` 崩溃(2026-09-01 生产实录)。 + ```bash # 2.1 差异核对(必做):打印生产与测试的差异清单,与本次批次对照 ./py3/bin/python deploy/ddiff.py --checklist -# 2.2 代码增量(先代码后库,或按迁移说明顺序) -cd /d/doit/pipeline-app/pkgs/ && git pull --ff-only origin main -cd /d/doit/pipeline-app && ./py3/bin/pip install pkgs/ -find py3/lib/python3.10/site-packages/ -name __pycache__ -exec rm -rf {} + -nohup bash restart-pipeline.sh logs/restart.log 2>&1 & -sleep 15; curl -s -o /dev/null -w "health:%{http_code}\n" http://127.0.0.1:9090/ - -# 2.3 数据库增量(迁移引擎) +# 2.2 数据库增量先行(迁移引擎) ./py3/bin/python deploy/dmig.py status # 看台账:哪些已执行、哪些待执行 ./py3/bin/python deploy/dmig.py plan # 预演:打印本批次将执行的 SQL(不落库) ./py3/bin/python deploy/dmig.py apply # 执行(自动先备份本批次表,逐条落库,逐条记账) + +# 2.3 代码增量(库就绪后才上代码) +cd /d/doit/pipeline-app/pkgs/ && git pull --ff-only origin main +cd /d/doit/pipeline-app && ./py3/bin/pip install pkgs/ +find py3/lib/python3.10/site-packages/ -name __pycache__ -exec rm -rf {} + + +# 2.4 最后重启(生产四进程:逐 pidfile kill 再 start,见 pipeline-prod-operations 技能; +# 禁止 pkill -f "pipeline-app" ——会误杀自己的远程 shell) +nohup bash restart-pipeline.sh logs/restart.log 2>&1 & +sleep 15; curl -s -o /dev/null -w "health:%{http_code}\n" http://127.0.0.1:9090/ ``` `dmig.py apply` 的行为: