Available for PostgreSQL

They manage the change. We verify it.

Migration tools deploy your change safely. None of them check the logic still behaves the same.

How to do it

Pin behaviour as tests, then let any change prove itself against them.

  1. Generate tests for the current behaviour and commit them next to your migrations:
unitautogen --schema public --out unit_tests --html report.html --json report.json
  1. After a migration redeploys a function or trigger, re-run the suite in CI.
  2. A moved behaviour fails, naming the routine and branch. If the change was intended, regenerate and commit.

For flows that span several routines, pin them with unitautogen integration (Team).

The gap

How it compares

Top rows show what those tools do well. Bottom rows show the layer none of them offer.

CapabilityRedgate FlywayLiquibaseBytebaseUnitAutogen
Version-control and apply schema migrationsYesYesYesWorks alongside
Approval workflows and change governanceYesYesYesWorks alongside
Structural schema drift detectionYesYesYesWorks alongside
Deploy functions, triggers and proceduresYesYesYesTests them
Auto-generate unit tests for that logicNoNoNoYes
Auto-generate integration tests across the call mapNoNoNoYes
Measured branch and statement coverage of PL/pgSQLNoNoNoYes
Proof a change preserved behaviour (regression gate)NoNoNoYes
Prove RLS and tenant isolation hold through functions, views and triggersNoNoNoYes
Audit PII leaked through error and RAISE messagesNoNoNoYes

Data masking (Redgate, Bytebase) is a separate job from proving access rules hold.

What platforms suggest

Verifying a change with tests in CI is what the platform tells you to do.