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]
Flag Default Description
--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-rows 0 cap hydrated rows per table (0 = no cap)
--migrations, -m migrations migration .sql file or directory
--runner override runner detection (rawsql; alembic|prisma|drizzle are DETECTED but cannot be validated yet)
--scale 1 fraction of declared rows to hydrate
--seed 0 deterministic hydration seed
--statement-timeout 1m0s cancel 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