Files
meijiaka-zy/python-api/scripts/check_table_prefix.py
T
小鱼开发 cbd4068776 fix(db): unify table name prefix to mjk_ for update tables
- Rename app_releases → mjk_app_releases
- Rename release_packages → mjk_release_packages
- Update ForeignKey reference and migration file
- Add pre-commit hook: check_table_prefix.py to prevent future violations
2026-05-15 18:28:07 +08:00

47 lines
1.2 KiB
Python

#!/usr/bin/env python3
"""
检查所有模型的 __tablename__ 是否以 mjk_ 开头
用法:
python scripts/check_table_prefix.py
退出码:
0 - 所有表名合规
1 - 有表名缺少 mjk_ 前缀
"""
import re
import sys
from pathlib import Path
MODELS_DIR = Path("app/models")
TABLENAME_RE = re.compile(r'__tablename__\s*=\s*"([^"]+)"')
def check() -> int:
violations = []
for py_file in sorted(MODELS_DIR.glob("*.py")):
content = py_file.read_text(encoding="utf-8")
for match in TABLENAME_RE.finditer(content):
table_name = match.group(1)
if not table_name.startswith("mjk_"):
violations.append((py_file.name, table_name))
if violations:
print("❌ 表名前缀检查失败:以下模型的 __tablename__ 缺少 'mjk_' 前缀\n")
for filename, table_name in violations:
print(f" {filename}: __tablename__ = \"{table_name}\"")
print(
"\n修复方式:将表名改为 mjk_<name> 格式,与其他模型保持一致。\n"
)
return 1
print("✅ 所有模型表名均以 'mjk_' 开头")
return 0
if __name__ == "__main__":
sys.exit(check())