feat(base): 新增基础数据六表及 V4 迁移(人员/辐射区域/拓展计划/产品/客户/归属留痕)
- TPlusSyncMixin 统一 T+ 同步预留四列(可空+普通索引,唯一键待 IT 定键后升级) - 留痕表实体 ID 无外键冗余固化,删除保护由服务层承担 - init-dev.sql 同步六表 DDL,alembic_version 标记更新 Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
1 parent
4552f2e703
commit
f22d14e439
12 files changed
+1083
-4
No files matched your search
@@ -23,8 +23,17 @@ EXPECTED_TABLES = {
|
||||
"param_definitions",
|
||||
"param_change_batches",
|
||||
"param_values",
|
||||
"personnel",
|
||||
"personnel_regions",
|
||||
"personnel_plans",
|
||||
"products",
|
||||
"customers",
|
||||
"ownership_change_logs",
|
||||
}
|
||||
|
||||
# 单复数同形的集合名词:本身即复数语义,不受「以 s 结尾」检查约束
|
||||
PLURAL_EXCEPTIONS = {"personnel"}
|
||||
|
||||
|
||||
def _ddl(table_name: str) -> str:
|
||||
"""返回某张表的建表 DDL 文本。"""
|
||||
@@ -43,7 +52,9 @@ class TestTableSet:
|
||||
def test_所有表名均为小写蛇形复数(self) -> None:
|
||||
for name in Base.metadata.tables:
|
||||
assert re.fullmatch(r"[a-z][a-z0-9_]*", name), f"表名 {name} 不符合小写蛇形"
|
||||
assert name.endswith("s"), f"表名 {name} 应为复数"
|
||||
# personnel 等集合名词单复数同形,本身即复数语义
|
||||
if name not in PLURAL_EXCEPTIONS:
|
||||
assert name.endswith("s"), f"表名 {name} 应为复数"
|
||||
|
||||
|
||||
class TestNamingConvention:
|
||||
|
||||
Reference in new issue
Block a user