From 23795988004a3939d897ff5531fe6b5d4682c2b0 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Fri, 2 Oct 2026 19:48:47 +0800 Subject: [PATCH] =?UTF-8?q?docs(plan):=20=E8=AE=B0=E5=BD=95=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E7=BC=96=E5=8F=B7=E4=B8=8D=E8=83=BD=E6=94=B9=E5=90=8D?= =?UTF-8?q?=E7=9A=84=E5=9D=91=EF=BC=8C=E5=B9=B6=E8=AF=B4=E6=98=8E=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E8=BF=87=E5=90=8E=E7=9A=84=E5=AF=B9=E9=BD=90=E5=81=9A?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit P1a 的迁移先叫 20261002_0038,本地 dev 库应用过之后为保持链条连续改名成 0037,dev 库的 alembic_version 还记着旧编号,再启动就报 Can't locate revision identified by '20261002_0038'。 结论写进附录 C.1:编号要在被任何库应用之前定下来;已经应用过又必须改名时, 除改文件外还要把每个应用过的库 UPDATE alembic_version 对齐(前提是迁移内容 未变)。 --- docs/自动化与资料收集规划.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/自动化与资料收集规划.md b/docs/自动化与资料收集规划.md index 4a3af0e..7887599 100644 --- a/docs/自动化与资料收集规划.md +++ b/docs/自动化与资料收集规划.md @@ -1152,6 +1152,13 @@ OSS_PREFIX=collect 约定:每个迁移的 `down_revision` 指向前一个;**写成幂等的**(照 `20261001_0036` 的写法,先 `sa.inspect` 查存在再改);每加一个迁移,`tests/test_migrations.py` 的 `HEAD_REVISION` 要同步改。 +> **⚠️ 迁移编号一旦被任何库应用过就不能再改名**。P1a 犯过一次:迁移先叫 `20261002_0038`,本地 dev 库跑过一次,随后为了链条连续改名成 `0037`,dev 库里的 +> `alembic_version` 还记着 `0038`,再启动就报 +> `CommandError: Can't locate revision identified by '20261002_0038'`。 +> 改名要在**还没被任何库应用**之前做;已经应用过又必须改名时,除了改文件,还要把每个应用过的库 +> 手动对齐:`UPDATE alembic_version SET version_num='<新编号>';`(前提是迁移内容没变, +> 否则要按实际差异补脚本)。 + ### C.2 通用约定 - 测试文件按功能命名:`tests/test_<域>_<主题>.py`(现有 38 个文件、235 条);