在前后端开发联调前 的提交20260223
This commit is contained in:
73
scripts/ops/_archive_old_ddl.py
Normal file
73
scripts/ops/_archive_old_ddl.py
Normal file
@@ -0,0 +1,73 @@
|
||||
"""
|
||||
一次性脚本:将已被 docs/database/ddl/ 覆盖的旧 DDL 文件归档到 db/_archived/。
|
||||
迁移脚本、种子数据、FDW 配置、工具脚本不动。
|
||||
|
||||
用法:cd C:\\NeoZQYY && python scripts/ops/_archive_old_ddl.py
|
||||
"""
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
from datetime import date
|
||||
|
||||
ROOT = Path(__file__).resolve().parent.parent.parent
|
||||
|
||||
ARCHIVE_DIR = ROOT / "db" / "_archived" / f"ddl_baseline_{date.today().isoformat()}"
|
||||
|
||||
# 需要归档的文件:旧基线 DDL(已被 docs/database/ddl/ 完全覆盖)
|
||||
FILES_TO_ARCHIVE = [
|
||||
# etl_feiqiu/schemas/ 下的当前基线
|
||||
"db/etl_feiqiu/schemas/meta.sql",
|
||||
"db/etl_feiqiu/schemas/ods.sql",
|
||||
"db/etl_feiqiu/schemas/dwd.sql",
|
||||
"db/etl_feiqiu/schemas/core.sql",
|
||||
"db/etl_feiqiu/schemas/dws.sql",
|
||||
"db/etl_feiqiu/schemas/app.sql",
|
||||
# etl_feiqiu/schemas/ 下的历史遗留版本(使用旧 schema 名 billiards_*/etl_admin)
|
||||
"db/etl_feiqiu/schemas/schema_dwd_doc.sql",
|
||||
"db/etl_feiqiu/schemas/schema_dws.sql",
|
||||
"db/etl_feiqiu/schemas/schema_etl_admin.sql",
|
||||
"db/etl_feiqiu/schemas/schema_ODS_doc.sql",
|
||||
"db/etl_feiqiu/schemas/schema_verify_perf_indexes.sql",
|
||||
# zqyy_app/schemas/ 下的基线
|
||||
"db/zqyy_app/schemas/init.sql",
|
||||
]
|
||||
|
||||
|
||||
def main():
|
||||
ARCHIVE_DIR.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
moved = []
|
||||
skipped = []
|
||||
|
||||
for rel in FILES_TO_ARCHIVE:
|
||||
src = ROOT / rel
|
||||
if not src.exists():
|
||||
skipped.append(rel)
|
||||
continue
|
||||
|
||||
# 保留原始目录结构
|
||||
dest = ARCHIVE_DIR / rel
|
||||
dest.parent.mkdir(parents=True, exist_ok=True)
|
||||
shutil.move(str(src), str(dest))
|
||||
moved.append(rel)
|
||||
|
||||
print(f"归档目录:{ARCHIVE_DIR}")
|
||||
print(f"已移动 {len(moved)} 个文件:")
|
||||
for f in moved:
|
||||
print(f" ✅ {f}")
|
||||
if skipped:
|
||||
print(f"跳过 {len(skipped)} 个(不存在):")
|
||||
for f in skipped:
|
||||
print(f" ⏭️ {f}")
|
||||
|
||||
# 保留 .gitkeep
|
||||
for d in ["db/etl_feiqiu/schemas", "db/zqyy_app/schemas"]:
|
||||
gk = ROOT / d / ".gitkeep"
|
||||
if not gk.exists():
|
||||
gk.touch()
|
||||
print(f" 📄 补充 {d}/.gitkeep")
|
||||
|
||||
print(f"\n✅ 完成。旧 DDL 已归档,schemas/ 目录保留 .gitkeep")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user