| .. | .. |
|---|
| 29 | 29 | db_only: bool, |
|---|
| 30 | 30 | uploads_only: bool, |
|---|
| 31 | 31 | dry_run: bool = False, |
|---|
| 32 | + skip_backup: bool = False, |
|---|
| 32 | 33 | ) -> AsyncGenerator[str, None]: |
|---|
| 33 | 34 | """Stream sync output via SSE.""" |
|---|
| 34 | 35 | args = ["sync", project, "--from", from_env, "--to", to_env] |
|---|
| .. | .. |
|---|
| 38 | 39 | args.append("--uploads-only") |
|---|
| 39 | 40 | if dry_run: |
|---|
| 40 | 41 | args.append("--dry-run") |
|---|
| 42 | + if skip_backup: |
|---|
| 43 | + args.append("--skip-backup") |
|---|
| 41 | 44 | |
|---|
| 42 | 45 | mode = "db-only" if db_only else ("uploads-only" if uploads_only else "full") |
|---|
| 43 | 46 | yield _sse_line({ |
|---|
| .. | .. |
|---|
| 62 | 65 | db_only: bool = Query(default=False), |
|---|
| 63 | 66 | uploads_only: bool = Query(default=False), |
|---|
| 64 | 67 | dry_run: bool = Query(default=False), |
|---|
| 68 | + skip_backup: bool = Query(default=False), |
|---|
| 65 | 69 | _: str = Depends(verify_token), |
|---|
| 66 | 70 | ) -> StreamingResponse: |
|---|
| 67 | 71 | """Sync data backward (prod->int, int->dev) with SSE streaming.""" |
|---|
| .. | .. |
|---|
| 71 | 75 | detail=f"Invalid sync path '{from_env} -> {to_env}'. Only adjacent pairs are allowed: prod<->int, int<->dev.", |
|---|
| 72 | 76 | ) |
|---|
| 73 | 77 | return StreamingResponse( |
|---|
| 74 | | - _sync_generator(project, from_env, to_env, db_only, uploads_only, dry_run), |
|---|
| 78 | + _sync_generator(project, from_env, to_env, db_only, uploads_only, dry_run, skip_backup), |
|---|
| 75 | 79 | media_type="text/event-stream", |
|---|
| 76 | 80 | headers={ |
|---|
| 77 | 81 | "Cache-Control": "no-cache", |
|---|