🦊 MigrationFox Docs

Rollback preview · seven-day reversible window

Every completed migration keeps a rollback journal for seven days. Before you revert, a preview shows exactly what will be undone — file counts, permission removals, folder deletions — so you never guess what undo actually does.

How the rollback journal works

During every migration run, MigrationFox writes a journal entry for each destination-side mutation:

The journal is bounded to seven days. After day seven the journal entries are purged and the run becomes non-revertible. The window is long enough to catch a landing problem after stakeholders have had a chance to look, and short enough to keep journal storage bounded.

Reverting a run

  1. Open the project in MigrationFox.
  2. Navigate to History · Runs. Reversible runs show a ROLLBACK AVAILABLE badge with the remaining time window.
  3. Click Preview rollback. The preview loads in seconds (it reads the journal, does not touch the destination).
  4. Review the counts and the per-action summary. Check that what will be removed is what you expect.
  5. Click Revert run. The rollback job queues. A progress view shows real-time undo progress.
  6. When the rollback completes, the run is marked REVERTED. The journal is retained for audit but cannot be re-applied.

Partial rollback

You can also roll back a subset of a run. From the preview, click Narrow scope and pick:

Partial rollbacks write their own journal entries and can themselves be rolled back within the remaining seven-day window.

MOVE MIGRATIONS

If the run was a MOVE (source files deleted after copy), a rollback puts files back in the destination but cannot restore the source — the source was deleted by the tenant’s own deletion. In this case rollback shows a prominent warning and you choose whether to proceed with the partial-restore. For fully-reversible rollbacks, use COPY migrations until the rollback window closes.

What rollback does NOT do

Audit log

Every rollback operation (preview viewed, revert initiated, revert completed, revert failed) is written to the project audit log with timestamp and actor. Audit entries are CSV-exportable and retained for the life of the project.

Revert via API

POST /api/runs/run_4e7a/rollback
Authorization: Bearer <personal-access-token>

{
  "confirm": true,
  "scope": "full"   // or "narrow" with an additional selector
}

Related