Offline, read-only simulation of declared schema migration steps over an exported fixture. This is a deliberate safety adaptation of a database rehearsal: it does not create a database, connect to one, execute SQL, inspect production, modify fixture files, or delete data. It checks only the narrow declarative schema operations listed below; it cannot prove real SQL behavior, data transformations, locking, or database rollback safety.
This walkthrough uses the tool's public README and checked-in example files. Run the command from a repository checkout with Node.js 22+; inspect the source before using it on your own files.
Run the checked-in example
node bin/migration-rehearsal-runner.mjs --root examples/pass --input snapshot.json
node bin/migration-rehearsal-runner.mjs --root examples/fail --input snapshot.json
npm run checkRead the result
--help prints usage. Normal runs emit one JSON report on stdout: exit 0=pass, 1=fail, 2=incomplete or invalid configuration. Invalid options or root produce empty stdout. An unreadable, undecodable, malformed, or out-of-root named input produces an incomplete report. The input is realpath-confined under the root; UTF-8 decoding is strict and duplicate decoded JSON keys are rejected. No files are written.
Where this check stops
Input ≤65,536 bytes; ≤50 tables per schema; ≤100 columns per table; ≤50 steps per phase; JSON depth ≤16; evaluation deadline ≤5,000 ms through an injected monotonic clock. Identifiers are ASCII letters followed by up to 63 ASCII letters, digits, or underscores. Every inclusive bound accepts N and rejects N+1. Optional top-level metadata is non-semantic but still inspected for depth and connection hints. This tool is not a substitute for an isolated real-database migration test performed by a separate, explicitly authorized workflow.
Before adapting the command to your own workflow, review the accepted inputs, exit codes and safety boundaries in the README.
Compiled with AI assistance from checked-in public documentation and example scripts. Run the example and review the repository's current documentation before relying on its result.