---
title: "Plan a migration around data, cutover and a credible way back — Orvun Labs"
description: "A practical guide to rehearsal, reconciliation, write ownership and rollback during a software migration."
canonical: "https://orvunlabs.com/en/journal/plan-a-migration-around-data-cutover-and-a-credible-way-back"
language: "en"
last_modified: "2026-09-13"
---

# Plan a migration around data, cutover and a credible way back

A practical guide to rehearsal, reconciliation, write ownership and rollback during a software migration.

![A practical guide to rehearsal, reconciliation, write ownership and rollback during a software migration.](https://orvunlabs.com/images/blog/rescue.svg)

- Published: 2026-09-13T09:00:00.000Z

- [Software modernisation](https://orvunlabs.com/en/journal/topic/rescue.md)

## Migration begins before the import script

A migration plan must define what happens to data created while the move is in progress. Inventory entities, identifiers, relationships, timestamps and attachments. Decide which system owns writes at each point. A script that imports yesterday’s snapshot correctly can still lose today’s changes. Name the business owner who accepts the result and the operator who can stop the cutover.

## Rehearse with representative, protected data

Use sanitized data that includes duplicates, missing values, old status codes and large records. Check totals and relationships, then verify a sample of complete business journeys. For a fictional membership service, matching the member count is insufficient: active entitlements, payment references and cancellation state must also reconcile. Record how long rehearsal steps took in that environment rather than promising an unmeasured outage window.

## Define reconciliation beyond record counts

Prepare checks for counts, key relationships and business meaning before writing the migration script. In the membership example, verify that a current entitlement points to the correct member and subscription, and that a cancelled membership is not accidentally reactivated. Check attachments and reference identifiers as well as the main table. Keep a list of records intentionally excluded, with the reason and the person who approved it. An unexplained difference is a failed check, even if the total number of imported rows looks reassuring.

## Write the cutover as operator actions

Create an ordered runbook naming the action, operator, expected evidence and stop condition at each step. Include communication to staff, control of new writes, final data capture, import, reconciliation, application switching and observation. Rehearse the sequence in an isolated environment and revise it where someone needed an undocumented decision. The rehearsal duration describes that environment only; it should inform the plan without becoming a promise about an untested production move. Arrange access and an escalation route before the window, so an operator does not have to find the account owner during a blocked step.

## Protect changes created after the switch

The moment users start writing to the new system, reversal needs more than a database copy. Identify the records created or changed since the cutover, their external effects and how they will be preserved if service returns to the old application. Where reverse transfer is not safe, define a controlled forward-recovery route and make that limit explicit before launch. Decide who can make the stop-or-continue call and which evidence they need. After a successful transition, keep the agreed recovery material protected and retire temporary access and duplicate jobs according to the runbook.

## A rollback needs a write policy

A brief write freeze simplifies reconciliation but interrupts work. Parallel operation can reduce interruption while increasing synchronization and conflict-handling effort. Restoring the old application is not a valid rollback if users have already made changes only in the new database. Define a point of no return, reverse synchronization where feasible, or a controlled recovery path that preserves those changes.

## Prepare the cutover sheet

Ask Orvun Labs to review the migration alongside the replacement software. Keep a timed sequence, named owners and objective stop conditions accessible to the operators. Do not rely on the same person improvising both the migration and its recovery.

- Which checks must pass before opening writes?
- How are late changes and failed imports reconciled?
- Who can pause the launch, and on what evidence?
- How will new-system changes survive a reversal?

## Software rescue & care

A considered next chapter for existing software.

- [Discuss this service](https://orvunlabs.com/en/services/software-rescue.md)

## Related reading

- [A software handover checklist that goes beyond source code](https://orvunlabs.com/en/journal/software-handover-checklist.md)
- [Rewrite or improve gradually? A decision grounded in the business](https://orvunlabs.com/en/journal/rewrite-or-improve-gradually-a-decision-grounded-in-the-business.md)
- [Prioritize technical debt by its effect on the business](https://orvunlabs.com/en/journal/prioritize-technical-debt-by-its-effect-on-the-business.md)

## Let's make something useful.

A first product, a difficult workflow or software that needs a fresh start. Tell us where you are.

- [Tell us about your project](https://orvunlabs.com/en/contact)

## Structured data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://orvunlabs.com/#organization",
      "name": "Orvun Labs",
      "url": "https://orvunlabs.com",
      "logo": "https://orvunlabs.com/orvunlabs-icon-512.png",
      "description": "Custom software, SaaS products and AI-powered tools — designed around your business.",
      "knowsAbout": [
        "Custom software",
        "SaaS product development",
        "AI integration"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://orvunlabs.com/#website",
      "name": "Orvun Labs",
      "url": "https://orvunlabs.com",
      "inLanguage": [
        "en",
        "es",
        "de",
        "fr",
        "pt",
        "ja",
        "hi",
        "ar",
        "id",
        "tr",
        "pl"
      ],
      "publisher": {
        "@id": "https://orvunlabs.com/#organization"
      }
    },
    {
      "@type": "WebPage",
      "@id": "https://orvunlabs.com/en/journal/plan-a-migration-around-data-cutover-and-a-credible-way-back#webpage",
      "url": "https://orvunlabs.com/en/journal/plan-a-migration-around-data-cutover-and-a-credible-way-back",
      "name": "Plan a migration around data, cutover and a credible way back",
      "description": "A practical guide to rehearsal, reconciliation, write ownership and rollback during a software migration.",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://orvunlabs.com/#website"
      },
      "about": {
        "@id": "https://orvunlabs.com/#organization"
      },
      "breadcrumb": {
        "@id": "https://orvunlabs.com/en/journal/plan-a-migration-around-data-cutover-and-a-credible-way-back#breadcrumb"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://orvunlabs.com/en/journal/plan-a-migration-around-data-cutover-and-a-credible-way-back#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Orvun Labs",
          "item": "https://orvunlabs.com/en"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Plan a migration around data, cutover and a credible way back",
          "item": "https://orvunlabs.com/en/journal/plan-a-migration-around-data-cutover-and-a-credible-way-back"
        }
      ]
    },
    {
      "@type": "BlogPosting",
      "headline": "Plan a migration around data, cutover and a credible way back",
      "description": "A practical guide to rehearsal, reconciliation, write ownership and rollback during a software migration.",
      "datePublished": "2026-09-13T09:00:00.000Z",
      "dateModified": "2026-09-13T09:00:00.000Z",
      "inLanguage": "en",
      "author": {
        "@id": "https://orvunlabs.com/#organization"
      },
      "publisher": {
        "@id": "https://orvunlabs.com/#organization"
      },
      "image": [
        "https://orvunlabs.com/images/blog/rescue.svg"
      ],
      "mainEntityOfPage": {
        "@id": "https://orvunlabs.com/en/journal/plan-a-migration-around-data-cutover-and-a-credible-way-back#webpage"
      }
    }
  ]
}
```
