Standard CI only tests migrations against empty databases. Real deployments run new migrations while existing pods, workers, and background queues are actively executing. MigrationRehearsal verifies dual-version coexistence on every Pull Request.
Start Rehearsing in 60 Seconds
No database credentials leave your network. Rehearse locally or inject directly into GitHub Actions.
Runs AST schema diff, boots disposable container clones, tests old app vs new schema, and asserts rollback safety.
name: Dual-Version Database Compatibility Check
on:
pull_request:
paths: ['migrations/**', 'prisma/**', 'db/**']
jobs:
rehearse-migration:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Verify Dual-Version Coexistence
uses: subash-thiruppathi/MigrationRehearsal@v1
with:
manifest: ./rehearsal.manifest.json
slack-webhook: ${{ secrets.SLACK_WEBHOOK }}
license-key: ${{ secrets.MIGRATIONREHEARSAL_LICENSE_KEY }}
Automatically fails PRs containing destructive column drops, missing DEFAULT clauses, or write-blocking table locks.
[](https://migrationrehearsal.spekra.in)
Embed live zero-downtime verification badges on your repository proving zero lock hazards.
Scans your repository for unindexed foreign keys, non-concurrent index creations, and NOT NULL hazards without DEFAULT.
Select a candidate migration SQL to evaluate the rolling deployment coexistence window in real-time.
Embed Real-Time Zero-Downtime Proofs
Prove zero write-blocking locks and backward-compatible DDL to your engineering team and stakeholders.
Rolling Deployments Coexist For Minutes
When your CI runner spins up version N+1, version N is still taking live customer traffic on Kubernetes. Both versions must function against the migrated database.
Sanity check proving your baseline application test suite passes before schema changes.
Exercises existing pods against the newly migrated schema to catch dropped columns or strict NOT NULL additions.
Standard forward test proving candidate application code operates on the updated schema.
Tests whether rolling back code to version N still functions when data has already been written by version N+1.
Zero-Trust Dual-Version Rehearsals
Customer-operated runners execute inside your VPC, Kubernetes cluster, or GitHub Actions. Zero database credentials ever leave your infrastructure.
Essential AST schema diff & lock check for open-source & personal projects.
Automated PR checks for fast-shipping teams deploying database changes.
High-assurance dual-version coexistence testing for mission-critical SaaS.
High-concurrency runner pool with compliance auditor portal & SLA.
No. MigrationRehearsal wraps your existing migration command. It boots disposable database clones, runs your migration, and executes both your previous and candidate container images against the resulting schema to test compatibility.
No. Rehearsals run on lightweight synthetic fixtures or masked database dumps (typically 10MB to 5GB) containing representative schema complexity and foreign key relationships.
In real production deployments, down-migrations are rarely executed because they destroy new customer data created since deployment. Instead, teams roll back the application container. MigrationRehearsal verifies that version N of your app can still read and write to the database after version N+1 has already written records.
Get instant access to dual-version coexistence testing, lock hazard alerts, Slack webhooks, and SOC 2 / ISO change auditor packs.