finds.dev← search

// the find

sqitchers/sqitch

★ 3,134 · Perl · MIT · updated Jul 2026

Sensible database change management

Sqitch is a database change management tool that works independently of any ORM or framework. You write native SQL for your database engine, declare dependencies between changes, and Sqitch handles ordered deployment, revert, and verification. It's aimed at teams that want proper schema versioning without being locked into Rails migrations or Flyway.

The dependency graph between changes is genuinely useful — you can declare that change B requires change A even if they were committed out of order, and Sqitch will sort it out. The Merkle-tree plan file means deployment integrity is verifiable, not just sequential. Database coverage is unusually wide (Postgres, MySQL, Oracle, Snowflake, ClickHouse, etc.) and each engine has its own CI workflow with real database versions tested. The revert scripts are first-class citizens, not an afterthought — every change ships with deploy, revert, and verify scripts.

It's written in Perl, which means your team needs Perl tooling, CPAN, and someone willing to debug Moose stack traces when something goes wrong — this is a real barrier in 2026. Installation is not trivial: the bundling approach works but is fragile, and Docker is the only realistic option for most teams. There's no native CI/CD integration beyond running the CLI in a shell step. The plan file format is bespoke and not widely understood, so onboarding new developers always requires a learning curve that Flyway or Liquibase don't impose.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →