A standalone, opinion-free database change management system that supports multiple database engines with dependency resolution and deployment integrity.
Sqitch is a standalone database change management application that handles schema migrations across multiple database engines like PostgreSQL, MySQL, Oracle, and SQLite. It solves the problem of managing database changes in a consistent, reliable, and framework-agnostic way, ensuring deployment integrity and supporting iterative development.
Database administrators, backend developers, and DevOps engineers who need a robust, multi-engine solution for managing database schema changes in production environments.
Developers choose Sqitch for its database-engine-native scripting, dependency resolution, and deployment integrity features, all without being locked into a specific framework or ORM, making it highly flexible and reliable for complex database workflows.
Sensible database change management
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Sqitch operates independently of any ORM or application framework, allowing seamless use across diverse tech stacks, as emphasized in its 'No opinions' philosophy.
Uses database-specific scripts like SQL for PostgreSQL or SQL*Plus for Oracle, ensuring compatibility and leveraging native engine features without abstraction layers.
Changes can declare dependencies on other changes, guaranteeing proper execution order even when committed out-of-order, which is critical for complex schema evolutions.
Employs a Merkle tree pattern similar to Git, providing consistency and reliability in deployments without relying on sequential numbering, as detailed in the README.
Requires Perl and manual bundling with options like '--with postgres' for each database engine, making setup more involved than single-language or package-manager tools.
Built on Perl, which may be unfamiliar or undesirable in modern stacks focused on languages like Python or JavaScript, adding overhead in polyglot environments.
Involves mastering Sqitch-specific commands, plan files, and workflows, which can be daunting compared to simpler, framework-integrated migration tools.