Migration tools deploy your change safely. None of them check the logic still behaves the same.
Pin behaviour as tests, then let any change prove itself against them.
unitautogen --schema public --out unit_tests --html report.html --json report.json
For flows that span several routines, pin them with unitautogen integration (Team).
Top rows show what those tools do well. Bottom rows show the layer none of them offer.
| Capability | Redgate Flyway | Liquibase | Bytebase | UnitAutogen |
|---|---|---|---|---|
| Version-control and apply schema migrations | Yes | Yes | Yes | Works alongside |
| Approval workflows and change governance | Yes | Yes | Yes | Works alongside |
| Structural schema drift detection | Yes | Yes | Yes | Works alongside |
| Deploy functions, triggers and procedures | Yes | Yes | Yes | Tests them |
| Auto-generate unit tests for that logic | No | No | No | Yes |
| Auto-generate integration tests across the call map | No | No | No | Yes |
| Measured branch and statement coverage of PL/pgSQL | No | No | No | Yes |
| Proof a change preserved behaviour (regression gate) | No | No | No | Yes |
| Prove RLS and tenant isolation hold through functions, views and triggers | No | No | No | Yes |
| Audit PII leaked through error and RAISE messages | No | No | No | Yes |
Verifying a change with tests in CI is what the platform tells you to do.
supabase test db. UnitAutogen generates them, so a change that moves a behaviour fails there. Supabase, Testing your database →plpgsql_check for PL/pgSQL. UnitAutogen uses it for the branch coverage behind the regression gate. Supabase, plpgsql_check →