Cut-over runbook
This is the hour-by-hour sequence for a standard Graftport cut-over. The model assumes:
- You have already run at least one full (extract + transform + load) against a staging destination and verified the result.
- You are doing a same-night extract and load against the production destination.
- DNS flips happen once the final load run reports
succeeded.
Timing guide
| Time | Action | Notes |
|---|---|---|
| T −2 h | Extract only against live source | Locks in source state. No destination touch. |
| T −1 h | Transform only + dry-run | Applies current mapping to latest extract. Inspect counts and a sample of output in the Data tab. No writes. |
| T −15 min | Confirm run shows succeeded | Fix any mapping issues now if counts look wrong. |
| T 0 | Load only — dry-run off | Pushes the transformed payload. Most records skip (already loaded from rehearsal); new records since rehearsal are first-loaded. |
| T +5 min | Check run status | All resources should show succeeded or completed with errors. Read errors before proceeding if any. |
| T +10 min | Flip DNS | Point domain to destination Shopify store. |
| T +30 min | Place a live test order | End-to-end: add to cart, checkout, confirm order appears in Shopify Admin. |
| T +60 min | Submit sitemap to Search Console | https://<domain>/sitemap.xml. |
| T +24 h | Run a final extract + load | Picks up orders placed during DNS propagation window. Safe to run — idempotent. |
What “skipped” means
Graftport tracks every loaded record by its source identity. On the cut-over load, records already on the destination from the staging rehearsal are skipped at zero cost — they are counted but not charged and not re-written. Only records that are new or changed since the last load are touched.
This is why re-running on cut-over night is safe: the risk of duplicates is zero by design.
If the load run fails mid-way
- Do not flip DNS. The destination is in a partial state.
- Fix the cause of the failure (credentials expired, a mapping error on a specific resource, Shopify rate-limit issue).
- Re-run load only — it picks up where the previous run left off, skipping everything already loaded.
- Flip DNS only once all resources show
succeededor you have triaged the remaining errors as non-critical.
If you need to revert after DNS flip, you can point DNS back to the source store while you investigate. The source store was never written to by Graftport, so it is always available as a fallback.
Post-launch: picking up stragglers
Some orders will land on the source store during DNS propagation. Run one more full extract + load 24 hours after the flip. Because the run is idempotent, nothing already on the destination is touched — only genuinely new records from the propagation window are loaded.