Sqitch is a database change management application that enables version control for database schemas across multiple database engines without tying users to any particular framework or platform.
The tool addresses the problem of safely tracking and deploying database schema changes by using native SQL scripts specific to each database engine rather than an abstraction layer. Changes can declare dependencies on other changes, ensuring correct execution order even when commits arrive out of sequence. Sqitch employs a Merkle tree pattern similar to Git to verify deployment integrity through a plan file, eliminating the need for sequential numbering of migrations. Until changes are tagged and released, developers can modify deployment scripts iteratively, supporting test-driven database development workflows.
Sqitch suits teams managing schemas across PostgreSQL, YugabyteDB, CockroachDB, SQLite, MySQL, MariaDB, Oracle, Firebird, Vertica, Exasol, Snowflake, or ClickHouse who want a framework-agnostic approach. It works well for projects requiring cross-database compatibility or those where database changes need to be coordinated with changes from other Sqitch projects through explicit dependency declarations. The tool is particularly valuable when iterative schema development matters more than locking changes immediately upon commit.
The project maintains active development with regular updates and comprehensive documentation including tutorials tailored to each supported database engine. The codebase shows sustained attention to supporting an expanding range of database platforms, with recent additions extending compatibility to newer systems. Development activity demonstrates ongoing refinement of core functionality and continued investment in making the tool accessible across diverse database environments.