From a1b02e3ed7746f4ee982701831a351d1a0ebe93b Mon Sep 17 00:00:00 2001 From: hub-gif <2487812171@qq.com> Date: Tue, 14 Apr 2026 14:17:27 +0800 Subject: [PATCH] chore(django): fail fast with hint when pipeline 0012/0013 migration files missing Made-with: Cursor --- backend/manage.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/backend/manage.py b/backend/manage.py index 8e7ac79..ffea21e 100644 --- a/backend/manage.py +++ b/backend/manage.py @@ -2,11 +2,34 @@ """Django's command-line utility for administrative tasks.""" import os import sys +from pathlib import Path + + +def _require_pipeline_migration_files() -> None: + """0013 依赖 0012;缺文件时 MigrationLoader 报 NodeNotFoundError,此处给出可操作的提示。""" + base = Path(__file__).resolve().parent + required = ( + base / "pipeline" / "migrations" / "0012_job_pause_checkpoint.py", + base / "pipeline" / "migrations" / "0013_rebuild_pipelinejobcheckpoint.py", + ) + missing = [p for p in required if not p.is_file()] + if not missing: + return + print( + "Missing pipeline migration file(s) (clone/pull 不完整或误删):\n" + + "\n".join(f" - {p}" for p in missing) + + "\n\nRestore from Git, e.g.\n" + " git checkout HEAD -- pipeline/migrations/0012_job_pause_checkpoint.py " + "pipeline/migrations/0013_rebuild_pipelinejobcheckpoint.py\n", + file=sys.stderr, + ) + sys.exit(1) def main(): """Run administrative tasks.""" os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') + _require_pipeline_migration_files() try: from django.core.management import execute_from_command_line except ImportError as exc: