Files
shanxia2.0/backend/scripts/run_db_auto_generate_plans.py
T
2026-06-10 22:59:34 +08:00

40 lines
1.0 KiB
Python

#!/usr/bin/env python3
"""手动触发地磅计划按月自动生成(与 APScheduler 任务同逻辑)。"""
from __future__ import annotations
import argparse
import sys
from pathlib import Path
BACKEND_ROOT = Path(__file__).resolve().parents[1]
if str(BACKEND_ROOT) not in sys.path:
sys.path.insert(0, str(BACKEND_ROOT))
from app.core.database import SessionLocal
from app.services.db.auto_generate_plans import run_auto_generate_monthly_plans
def main() -> int:
parser = argparse.ArgumentParser(description="Run db monthly plan auto-generation once")
parser.add_argument(
"--force",
action="store_true",
help="Skip first-day-of-month guard (for local verification)",
)
args = parser.parse_args()
db = SessionLocal()
try:
result = run_auto_generate_monthly_plans(db, force=args.force)
print(result)
return 0
except Exception:
db.rollback()
raise
finally:
db.close()
if __name__ == "__main__":
raise SystemExit(main())