Skip to content

rowshape validate

validate hydrates a disposable Postgres from the fixture, applies the migration set through your own runner, captures what happened (locks, durations, rows, constraint violations, index builds), and returns a verdict. Against a provided live branch (—target) the facts are ground truth. validate never touches the fixture’s source database.

Terminal window
rowshape validate [rowshape.yaml] [flags]
FlagDefaultDescription
--calibrate—hydrate at two scales and fit the cost curve, upgrading duration estimates to measured (slower)
--ephemeral—admin URL: create a disposable database, hydrate into it, then drop it
--i-know-target-is-writable—proceed with —target when the fixture records no source host to check it against
--json—emit the machine-readable verdict as JSON
--max-rows0cap hydrated rows per table (0 = no cap)
--migrations, -mmigrationsmigration .sql file or directory
--runner—override runner detection (rawsql; alembic|prisma|drizzle are DETECTED but cannot be validated yet)
--scale1fraction of declared rows to hydrate
--seed0deterministic hydration seed
--statement-timeout1m0scancel a migration statement that runs longer than this (0 = no ceiling); a cancelled statement is reported, never certified
--target—validate against this live database URL (its data is ground truth)
--warn-fail—exit non-zero on a WARN-only verdict