prepare fastapi root layout for server deployment
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from sqlalchemy import inspect, text
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
|
||||
|
||||
from app.db.session import SessionLocal
|
||||
|
||||
LEGACY_TABLES = [
|
||||
"evaluation_report_exports",
|
||||
"evaluation_records",
|
||||
"session_submissions",
|
||||
"session_orders",
|
||||
"session_runtime_messages",
|
||||
"training_sessions",
|
||||
"case_exam_items",
|
||||
"rubric_templates",
|
||||
"cases",
|
||||
]
|
||||
|
||||
|
||||
def main() -> None:
|
||||
"""旧表清理:在新表链路验证通过后删除不再被业务依赖的旧表。"""
|
||||
with SessionLocal() as db:
|
||||
existing = set(inspect(db.bind).get_table_names()) if db.bind else set()
|
||||
dialect = db.bind.dialect.name if db.bind else ""
|
||||
if dialect == "mysql":
|
||||
db.execute(text("SET FOREIGN_KEY_CHECKS=0"))
|
||||
for table_name in LEGACY_TABLES:
|
||||
if table_name in existing:
|
||||
db.execute(text(f"DROP TABLE `{table_name}`"))
|
||||
print(f"dropped legacy table: {table_name}")
|
||||
if dialect == "mysql":
|
||||
db.execute(text("SET FOREIGN_KEY_CHECKS=1"))
|
||||
db.commit()
|
||||
print("legacy table cleanup completed")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user