The short version
You do not hand us your database and hope. Migration runs in three proven stages — dry-run → import → verify — and every import is idempotent (safe to re-run) and reversible (a rollback removes exactly what the import created, nothing else). We rehearse the whole thing on a sample before any real cutover.
What we need from you (small, safe, representative)
A partial OPAS export is enough to start — we validate the shape of your data first, not all of it. Nothing here asks for payroll figures unless you choose to share them.
| Sample | Size | Why | | --- | --- | --- | | Roster extract | 10–20 musicians | names, emails, instruments, sections, chairs — email is the dedupe key | | One production week | 1 production | title, program, conductor, dates | | Its services | 5–10 services | type, date, start/end, call time, venue, room — and your organization's timezone | | Assignments | who plays what | per-service or whole-production | | A few repertoire rows | 5–10 works | title, composer, duration | | Library list (optional) | file names only | no actual files needed for the dry run |
Anonymized data is welcome — replace names with pseudonyms and emails with aliases; keep the structure. Send it to your implementation contact, or paste a JSON bundle directly into the migration workspace under Settings → OPAS migration.
The dry run
The migration workspace accepts an OPAS JSON bundle and shows you — read-only, before anything is written — exactly what would be created: people, sections, productions, services, assignments, repertoire. Invalid and duplicate rows are listed individually so nothing fails silently. A sample bundle is downloadable on that page so you can see the expected shape with synthetic data before touching your own export.
What the import guarantees
- Idempotent — re-running the same bundle creates nothing twice.
- Reversible — rollback removes exactly the imported records, verified by count.
- Timezone-correct — service times are stored as true instants and displayed in your organization's timezone; we explicitly verify a morning rehearsal and an evening performance during the rehearsal run.
- Never surprise-writes — write-imports are blocked on production by design and run only in an explicitly confirmed migration window.
Migration day
We run your real (or anonymized) export through the same three stages with your operations manager watching, reconcile counts at every step, and only then schedule the live week. The full rehearsal plan — including go/no-go criteria — is part of your pilot onboarding.
What OPAS data we don't migrate automatically
Long-tail modules (evaluation forms, custom named forms) don't have automated importers yet — we say so up front, and we'll map them with you manually if they're load-bearing for your operation.