Matthias Nott
2026-02-25 fd03c16eca085423267c163137b28ccb60de8db0
app/routers/sync_data.py
....@@ -28,13 +28,16 @@
2828 to_env: str,
2929 db_only: bool,
3030 uploads_only: bool,
31
+ dry_run: bool = False,
3132 ) -> AsyncGenerator[str, None]:
3233 """Stream sync output via SSE."""
33
- args = ["sync", project, "--from", from_env, "--to", to_env, "--yes"]
34
+ args = ["sync", project, "--from", from_env, "--to", to_env]
3435 if db_only:
3536 args.append("--db-only")
3637 if uploads_only:
3738 args.append("--uploads-only")
39
+ if dry_run:
40
+ args.append("--dry-run")
3841
3942 mode = "db-only" if db_only else ("uploads-only" if uploads_only else "full")
4043 yield _sse_line({
....@@ -58,6 +61,7 @@
5861 to_env: str = Query(default="int", alias="to"),
5962 db_only: bool = Query(default=False),
6063 uploads_only: bool = Query(default=False),
64
+ dry_run: bool = Query(default=False),
6165 _: str = Depends(verify_token),
6266 ) -> StreamingResponse:
6367 """Sync data backward (prod->int, int->dev) with SSE streaming."""
....@@ -67,7 +71,7 @@
6771 detail=f"Invalid sync path '{from_env} -> {to_env}'. Only adjacent pairs are allowed: prod->int, int->dev.",
6872 )
6973 return StreamingResponse(
70
- _sync_generator(project, from_env, to_env, db_only, uploads_only),
74
+ _sync_generator(project, from_env, to_env, db_only, uploads_only, dry_run),
7175 media_type="text/event-stream",
7276 headers={
7377 "Cache-Control": "no-cache",