Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Database Migration Tools
  3. Sqitch

Sqitch

What it is

Sqitch is a free, open-source application for managing database changes. It is a standalone system, independent of a particular framework, ORM, database engine, or development environment. Changes are written as scripts native to the selected database, and can depend on other changes, including those in separate Sqitch projects, to establish execution order.

A plan file and Merkle tree pattern help check deployment integrity, and change names do not need to be numbered. Before a project is tagged and released, deployment scripts may be edited even after they have been committed to version control. Sqitch can deploy and revert changes, 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. Connecting to a database and executing scripts requires its native command-line client and connector libraries. Installation options include source, Docker, Linux distribution packages, macOS Homebrew, and Windows instructions. Sqitch is self-hosted software for Linux, macOS, and Windows, provided without warranty.

For and against

For

  • Works independently of frameworks and ORMs.
  • Supports a broad set of database engines.
  • Can deploy, verify, and revert changes.
  • Tracks deployment status and history.
  • Free and self-hosted.

Against

  • Requires a database-native command-line client.
  • Requires connector libraries for the selected database.
  • Software is provided without warranty.

The verdict

Sqitch provides database-native scripts, dependency ordering, deployment tracking, verification, and rollback across the engines listed in its manual. Teams must supply the required database client and connector libraries and account for the no-warranty terms.

Who it suits

Sqitch suits developers who want database-native change scripts and deployment tracking without tying their workflow to a specific framework or ORM. It requires the database engine's command-line client and connector libraries.

Plans and prices

Sqitch

Free

Database change management application · software license permits use, copying, modification, merging, publishing, distribution, and sale

Every plan, in full

On the record

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 · read 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 · read 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 · read 4 Oct 2026
Database support
Sqitch supports PostgreSQL, YugabyteDB, CockroachDB, SQLite, MySQL, MariaDB, Oracle, Firebird, Vertica, Exasol, Snowflake, and ClickHouse.sqitch.org · read 9 Oct 2026
Dependencies
Changes can declare dependencies on other changes, including changes in other Sqitch projects, to determine execution order.sqitch.org · read 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 · read 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 · read 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 · read 9 Oct 2026
Framework independent
Sqitch is a standalone system not tied to a framework, ORM, or platform.sqitch.org · read 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 · read 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 · read 4 Oct 2026
Iterative development
Deployment scripts can be modified during development until the project is tagged and released.sqitch.org · read 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 · read 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 · read 9 Oct 2026
Maintainer
The manual names David E. Wheeler as the author.sqitch.org · read 4 Oct 2026
Native scripts
Database changes are implemented as scripts native to the selected database engine.sqitch.org · read 9 Oct 2026
Purpose
Sqitch is a database change management application for framework-free development and dependable deployment.sqitch.org · read 9 Oct 2026
Revert and verify
Sqitch provides commands to revert database changes and verify deployed changes.sqitch.org · read 4 Oct 2026

The review

Overview

Sqitch is a database change management tool built around scripts written for the target database engine. It is best suited to teams that want framework-independent migrations and explicit control over change order. Its strongest case is broad engine support without a paid license; the cost is managing each database’s client and connector prerequisites.

Key features

Rather than impose an ORM or framework’s migration format, Sqitch runs database-native scripts. That gives database-focused teams direct control over how changes are expressed, but does not smooth over differences between engines: scripts remain specific to their target.

Changes can declare dependencies on one another, including changes maintained in other Sqitch projects. A plan file and a Merkle tree pattern support deployment integrity, while names need not follow a numbered sequence. This is useful when execution order is better expressed through dependencies than filenames.

Sqitch can deploy and revert changes, report deployment status and history, and run optional verification scripts during deployment. Before a project is tagged and released, committed deployment scripts may still be edited, which supports iteration but makes the release boundary important to teams managing change history.

Its manual covers PostgreSQL, YugabyteDB, CockroachDB, SQLite, MySQL, MariaDB, Oracle, Firebird, Vertica, Exasol, Snowflake, and ClickHouse. Each target requires its database-native command-line client and connector libraries, so engine breadth does not eliminate setup work. Sqitch also deliberately omits a command-line password option to avoid exposing credentials through shell history or to other users.

Pricing

Sqitch costs nothing. Its license permits use, copying, modification, merging, publishing, distribution, and sale, making it suitable for teams that want an open-source migration tool without a software charge. There are no paid Sqitch tiers to compare. The license grants those rights subject to its stated condition, and the software comes without warranty.

Platforms

Sqitch supports Linux, macOS, Windows, and self-hosted use. Installation options include source, Docker, Linux distribution packages for Red Hat and Ubuntu/Debian, Homebrew on macOS, and Windows instructions. In every case, the relevant database client and connector libraries remain necessary for connecting to a target and executing scripts.

Who it's for

Sqitch fits teams that are comfortable writing SQL or other native database scripts, want change dependencies rather than numbered migration files, and need deployment, rollback, status, history, or verification workflows across supported engines. Its standalone design also suits teams that do not want to tie database changes to a particular framework, ORM, or development environment.

It is a weaker fit for teams seeking a migration abstraction that hides engine differences, or those unwilling to install and maintain database-specific prerequisites. Community help is available through GitHub Discussions, the Sqitch Users mailing list, and Stack Overflow; filing issues requires a GitHub account. The manual names David E. Wheeler as the author, and the site says it uses no tracking or analytics services.

Pros and cons

  • Pros: Database-native scripts and declared dependencies let teams control both change content and execution order.
  • Pros: Deployment, revert, status, history, and optional verification cover key change-management tasks without a paid plan.
  • Pros: The manual lists support for a wide range of database engines, with Linux, macOS, Windows, and self-hosted installation paths.
  • Cons: Every target requires its native command-line client and connector libraries, adding setup and maintenance work.
  • Cons: Native scripts are engine-specific, so Sqitch does not provide a common migration language across databases.
  • Cons: The software is provided without warranty, and issue filing requires a GitHub account.

Alternatives

Database Migration Tools is a broader category to explore when comparing migration products. Consider Doctrine Migrations instead if you want a free, MIT-licensed PHP library installed with Composer or downloaded as a PHAR. Skeema offers a free Community plan for tables, stored procedures and functions, plus 18 linter checks; its Plus plan costs $124 a month.

sqlx-cli is a free option when database management, migrations, and offline query metadata are the relevant needs. Atlas is an open-core alternative with an Apache 2.0 core and advanced features available in its proprietary offering. Bytebase Enterprise has a free Community plan for up to 20 users and 10 database instances, with community support; its Pro plan is $20 a month, billed per user.

db-migrate is a free, MIT-licensed choice for teams using Node.js 24 or newer, with database drivers installed separately. dbmate is another free, open-source migration tool. FluentMigrator is a free Apache-2.0 framework distributed through NuGet, with provider packages selected separately. For database testing tools, see Database Testing Tools.

Verdict

Choose Sqitch if your team wants free, framework-independent database change management with native scripts, dependency-based ordering, verification, and rollback. Its main advantage is control across a wide set of engines; look elsewhere if you need migrations abstracted from engine-specific scripts or want to avoid installing and maintaining each database’s client and connectors.

Alternatives to Sqitch

Every alternative, ranked