chore(merge): 账号事件迁移改号 0041,并去重排查报告
dev 与 main 从 294c6cd 分叉后,各自新增了一个 0040 迁移(都从 20261002_0039 起链):
- main:20261003_0040 douyu_tasks.account_assigned_to(生产已应用)
- dev: 20261002_0040 account_events(未上生产)
两者合并即两个 alembic head,upgrade head 会直接失败。因为账号事件迁移从未被生产库
应用过,改号是安全的:
1. account_events 迁移改名为 20261003_0041,down_revision 指向 20261003_0040;
2. tests/test_migrations.py 的 HEAD_REVISION 同步改 20261003_0041;
3. 迁移保持幂等,本机开发库(alembic_version 已是 20261003_0040、account_events 表已存在)
实跑 upgrade 通过,仅推进版本号、数据未动;
4. 顺带修正规划/解耦设计里「下一个迁移编号」的过期取值(现为 20261003_0042)。
排查报告去重:两个会话各自写了一份《生产服务器高负载排查…》报告,内容重叠且互相矛盾
(一处写 8 核/16GB,另一处有 nproc 原始输出为 4 vCPU/7.1GiB)。合并为单一文档
docs/生产服务器高负载排查与优化报告.md,以带原始命令输出的事实为准,删除重复的那份,
并修正引用它的迁移方案文档。
This commit is contained in:
@@ -16,6 +16,16 @@
|
||||
实测 `audit_logs.target` 是自由文本(`冰柳192` / `导入103个` / `douyu_batch:xxx` 混着),
|
||||
无法可靠关联到账号,导致「谁什么时候分配/改标签/删除了这个账号」进不了账号时间线。
|
||||
加一列可空的 account_id,账号相关操作写入时带上即可(旧记录保持 NULL)。
|
||||
|
||||
## 编号为什么是 0041 而不是 0040
|
||||
|
||||
本迁移最初取号 `20261002_0040`(`down_revision` = `20261002_0039`)。开发期间生产上并发落地了
|
||||
索引优化 `20261003_0040`,它同样从 `20261002_0039` 起链 —— 两边一合并就是**两个 alembic head**,
|
||||
`upgrade head` 会直接报 `Multiple head revisions are present`。
|
||||
|
||||
因为本迁移**从未被生产库应用过**(`dev` 未部署),改号是安全的:接在 `20261003_0040` 之后成为
|
||||
`20261003_0041`。升级脚本写成幂等的(`sa.inspect` 先查存在),所以对已手工建过表的本地库
|
||||
重跑也只会空过并把版本号推进,不会重复建表。
|
||||
"""
|
||||
|
||||
from collections.abc import Sequence
|
||||
@@ -23,8 +33,8 @@ from collections.abc import Sequence
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
revision: str = "20261002_0040"
|
||||
down_revision: str | None = "20261002_0039"
|
||||
revision: str = "20261003_0041"
|
||||
down_revision: str | None = "20261003_0040"
|
||||
branch_labels: str | Sequence[str] | None = None
|
||||
depends_on: str | Sequence[str] | None = None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user