Freedom251 › Database Testing Tools
Sqitch

What Sqitch is
Sqitch is a database change management application for organizing, deploying, verifying, and reverting database changes. It is standalone rather than tied to a framework, ORM, database engine, or development environment. Changes are scripts native to the selected database, and they can declare dependencies on changes in the same or other Sqitch projects to determine execution order. A plan file and Merkle tree pattern help check deployment integrity, without requiring numbered change names. During development, committed deployment scripts may be modified before a project is tagged and released. Sqitch can report deployment status and history and run optional verification scripts. The manual lists support for PostgreSQL, YugabyteDB, CockroachDB, SQLite, MySQL, MariaDB, Oracle, Firebird, Vertica, Exasol, Snowflake, and ClickHouse. To connect to a database and execute scripts, it requires that engine’s native command-line client and connector libraries. Installation options include source, Docker, Linux distribution packages, macOS Homebrew, and Windows instructions. Sqitch is free software available for Linux, macOS, Windows, and self-hosted use.
Who it suits
Sqitch suits developers and database teams managing changes across supported database engines. It is a fit for teams that want framework-independent change scripts and can provide the database-native client and connector libraries.
What it does well
- Supports a broad list of database engines.
- Changes can declare cross-project dependencies.
- Provides deployment, verification, and revert commands.
- Offers source, Docker, and package installation options.
What to know first
- Requires a database-native command-line client.
- Requires connector libraries for the chosen database.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Sqitch | Database change management application · software license permits use, copying, modification, merging, publishing, distribution, and sale | Free |
As sqitch.org lists them, read 9 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the Sqitch website.
- Choose an installation route: source, Docker, a Linux package, macOS Homebrew, or Windows instructions.
- Install the database engine’s native command-line client and connector libraries.
- Write changes as scripts native to your selected database engine.
- Use Sqitch to manage change dependencies and deploy the scripts.
Overview
Sqitch is a database change-management tool for teams that prefer to write migrations as database-native scripts and manage their order explicitly. It is a strong fit for SQL-comfortable teams working across database engines; it is less suitable when a project needs migrations abstracted from engine-specific scripts or cannot install native database dependencies.
Key features
Sqitch keeps changes in the selected database engine’s own script format rather than tying projects to an ORM, framework, or development environment. That gives database-focused teams control over the scripts they deploy, but does not make those scripts portable between engines.
A plan file captures changes and their dependencies, including dependencies on changes in other Sqitch projects. Sqitch uses a Merkle tree pattern to protect deployment integrity, and change names need not be numbered. This lets teams express execution order through declared relationships rather than filename numbering.
Committed deployment scripts may be edited during development before the project is tagged and released. That flexibility supports iteration, but teams should treat tagging and release as a meaningful boundary for stabilizing the change history.
Sqitch can deploy and revert changes, report deployment status and history, and run optional verification scripts during deployment. Verification gives teams a way to check deployed changes as part of the process; rollback support is useful when a change needs to be undone.
The manual lists support for PostgreSQL, YugabyteDB, CockroachDB, SQLite, MySQL, MariaDB, Oracle, Firebird, Vertica, Exasol, Snowflake, and ClickHouse. Execution requires each target database’s native command-line client and connector libraries, so teams should account for those prerequisites in their environment setup. Sqitch deliberately offers no command-line password option, avoiding a route by which credentials could end up in shell history or be exposed to other users.
Pricing
Sqitch is free and open source. Its Sqitch plan costs nothing and grants permission to use, copy, modify, merge, publish, distribute, sublicense, and sell the software subject to the license condition. There are no paid tiers to trade off against the free plan. The software is provided without warranty.
Platforms
Sqitch supports Linux, macOS, Windows, and self-hosted use. Installation options include source and Docker, Linux distribution packages for Red Hat and Ubuntu/Debian, Homebrew on macOS, and Windows installation instructions. The operating-system options are broad, but database-specific client and connector dependencies remain part of setup.
Who it's for
Sqitch suits teams that want framework-independent database change management, are comfortable writing engine-native scripts, and value declared dependencies, verification, and rollback. It is a particularly practical choice when database changes need explicit ordering without numbered change names. Look elsewhere if the project needs a migration layer that hides engine differences or if installing native database clients and connectors is not viable.
Pros and cons
- Database-native scripts: teams can use the selected engine’s own script format without adopting an ORM or framework.
- Explicit dependency planning: a plan file can express ordering across changes and Sqitch projects, without numbered names.
- Deployment safeguards: integrity tracking, optional verification, status and history reporting, and revert commands support controlled change management.
- Broad database coverage: the supported list spans relational engines and services including Snowflake and ClickHouse.
- Operational prerequisites: every target requires its native command-line client and connector libraries.
- Engine-specific scripts: the native format avoids framework mediation but leaves database differences in the scripts themselves.
- No warranty: adopters take on the risk associated with using software distributed without warranty.
Alternatives
For MySQL-focused teams, Skeema offers a free Community plan with tables, stored procedures and functions, and 18 linter checks on Linux and macOS; its Plus plan is $124 a month. sqlx-cli is another free option for database management, migrations, and offline query metadata across Linux, macOS, and Windows.
Atlas may suit teams looking for an open-core option: its core engine is Apache 2.0 licensed, with advanced features available in a proprietary offering. dbmate is a free open-source migration tool for Linux, macOS, self-hosted use, and Windows.
FluentMigrator is worth considering for teams that want an Apache-2.0 licensed framework distributed through NuGet, with provider packages selected separately. golang-migrate and Goose are also free open-source migration tools. For PostgreSQL 14.0 or later, pgroll offers an open-source option distributed as a single cross-platform binary.
Browse Database Migration Tools or Database Testing Tools for more options.
Verdict
Choose Sqitch if your team wants a free, standalone system for database-native migrations with explicit dependencies, verification, and rollback. Its strongest reason to choose it is the combination of engine coverage and structured change planning without a framework dependency. Choose another tool if your workflow requires abstraction from engine-specific scripts or you cannot provide the native clients and connector libraries each database needs.
Verdict
Sqitch offers a standalone way to plan and manage database changes, including verification and rollback. Before adopting it, check that the required native client and connector libraries are available for your database.
Questions
How much does Sqitch cost?
Sqitch is free. Its software license permits use and distribution subject to the license’s stated condition.
Which databases does Sqitch support?
The manual lists PostgreSQL, YugabyteDB, CockroachDB, SQLite, MySQL, MariaDB, Oracle, Firebird, Vertica, Exasol, Snowflake, and ClickHouse.
What does Sqitch need to connect to a database?
It requires the database engine’s native command-line client and connector libraries to connect and execute change scripts.
Can Sqitch revert database changes?
Yes. Sqitch provides commands to revert changes and verify deployed changes.
Where can Sqitch be installed?
Installation options include source, Docker, Red Hat, Ubuntu/Debian, macOS Homebrew, and Windows Strawberry Perl.
Who is named as Sqitch’s author?
The manual names David E. Wheeler as the author.
Facts from Sqitch's own pages
- Community support
- The community offers GitHub Discussions, a users mailing list, Stack Overflow questions tagged sqitch, and a GitHub issue tracker for bugs and feature requests. · sqitch.org, 9 Oct 2026
- Credential security
- Sqitch intentionally has no command-line password option because command-line passwords can be recorded in shell history or exposed to other users. · sqitch.org, 9 Oct 2026
- Database prerequisites
- Sqitch requires a database-native command-line client and connector libraries to execute change scripts and connect to the database. · sqitch.org, 4 Oct 2026
- Database support
- Sqitch supports PostgreSQL, YugabyteDB, CockroachDB, SQLite, MySQL, MariaDB, Oracle, Firebird, Vertica, Exasol, Snowflake, and ClickHouse. · sqitch.org, 9 Oct 2026
- Dependencies
- Changes can declare dependencies on other changes, including changes in other Sqitch projects, to determine execution order. · sqitch.org, 9 Oct 2026
- Deployment and verification
- Sqitch can deploy and revert database changes, report deployment status and history, and run optional verification scripts during deployment. · sqitch.org, 9 Oct 2026
- Deployment integrity
- Sqitch uses a plan file and a Merkle tree pattern to manage changes and dependencies and ensure deployment integrity. · sqitch.org, 9 Oct 2026
- Framework independence
- Sqitch is a standalone system that is not tied to a framework, ORM, database engine, or development environment. · sqitch.org, 9 Oct 2026
- Framework independent
- Sqitch is a standalone system not tied to a framework, ORM, or platform. · sqitch.org, 4 Oct 2026
- Installation
- The project provides source and Docker installation options, Linux distribution packages, a macOS Homebrew installation, and Windows installation instructions. · sqitch.org, 9 Oct 2026
- Install options
- The download page lists source, Docker, Red Hat, Ubuntu/Debian, macOS Homebrew, and Windows Strawberry Perl installation options. · sqitch.org, 4 Oct 2026
- Iterative development
- Deployment scripts can be modified during development until the project is tagged and released. · sqitch.org, 9 Oct 2026
- License
- The manual grants permission to use, modify, publish, distribute, sublicense, and sell the software subject to its stated condition, and provides it without warranty. · sqitch.org, 4 Oct 2026
- License and warranty
- The manual grants software use and distribution rights free of charge and states that the software is provided without warranty. · sqitch.org, 9 Oct 2026
- Maintainer
- The manual names David E. Wheeler as the author. · sqitch.org, 4 Oct 2026
- Native scripts
- Database changes are implemented as scripts native to the selected database engine. · sqitch.org, 9 Oct 2026
- Purpose
- Sqitch is a database change management application for framework-free development and dependable deployment. · sqitch.org, 9 Oct 2026
- Revert and verify
- Sqitch provides commands to revert database changes and verify deployed changes. · sqitch.org, 4 Oct 2026
- Runtime dependencies
- Sqitch requires a database-native command-line client and connector libraries for the database engine it uses. · sqitch.org, 9 Oct 2026
- Security and privacy
- The site states that it uses no tracking or analytics services. · sqitch.org, 4 Oct 2026
Where Sqitch stands on Freedom251
- Database Testing Tools#12 of 28
- Database Migration Tools#17 of 32