pgquarrel
github.com
What it is
pgquarrel compares PostgreSQL database schemas and produces SQL commands to bring a target schema in line with a source. It connects to PostgreSQL servers and reads catalog metadata directly, rather than depending on tools such as pg_dump. The project describes deploying schema changes to testing, staging, or production as its main use. Filters can narrow comparisons to selected object types or include and exclude schemas by pattern. Output goes to stdout by default, with options to save it to a file, print a summary, or place changes in one transaction. pgquarrel does not manipulate table data with INSERT, UPDATE, DELETE, or COPY. Its documented object coverage includes both complete and partial support; inheritance and roles are noted absences, and not all PostgreSQL objects are supported. Output may not work as expected when the source PostgreSQL version is newer than the target. The software is free under the BSD-3-Clause license, distributed as source through GitHub or a Git clone, and the listed latest release is 0.7.0.
Spec sheet
- Purpose
- pgquarrel compares PostgreSQL database schemas (DDL) and outputs the differences as commands to make the target schema match the source.Read 3 Oct 2026 · github.com
- Platforms
- The README says it was tested on Linux, FreeBSD, and Windows, and provides installation instructions for UNIX based operating systems and Windows.Read 3 Oct 2026 · github.com
- License
- The repository identifies the software as BSD-3-Clause licensed.Read 3 Oct 2026 · github.com
- Data scope
- The tool does not manipulate table data with INSERT, UPDATE, DELETE, or COPY operations.Read 3 Oct 2026 · github.com
- Deployment use
- The README describes deploying database changes to testing, staging, or production environments as its main use case.Read 3 Oct 2026 · github.com
- Direct connections
- It connects directly to PostgreSQL servers and reads catalog metadata rather than relying on tools such as pg_dump.Read 3 Oct 2026 · github.com
- Distribution
- pgquarrel is distributed as source code through GitHub and can also be obtained by cloning its Git repository.Read 3 Oct 2026 · github.com
- Notable omissions
- The README identifies inheritance and roles as main absences and says pgquarrel does not support all PostgreSQL objects.Read 3 Oct 2026 · github.com
- PostgreSQL object coverage
- The README lists support for many PostgreSQL objects, with support marked partial for numerous types and complete for others.Read 3 Oct 2026 · github.com
- Release
- The releases page lists version 0.7.0 as the latest release and notes fixes to its Windows, Debian/Ubuntu, and FreeBSD builds.Read 3 Oct 2026 · github.com
- Selective comparison
- It supports filters and options to compare selected object types and include or exclude schemas by pattern.Read 3 Oct 2026 · github.com
- SQL output
- Changes are output to stdout by default, with options to write to a file, print a summary, or output changes as a single transaction.Read 3 Oct 2026 · github.com
- Support channel
- The repository has a public GitHub issues page for bug reports and feature requests.Read 3 Oct 2026 · github.com
- Version compatibility
- The generated file may not work as expected when the source PostgreSQL version is newer than the target version.Read 3 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Connects directly to PostgreSQL servers.
- Filters comparisons by object type and schema pattern.
- Can output changes as a single transaction.
- Free under the BSD-3-Clause license.
Limits
- Does not cover all PostgreSQL objects.
- Inheritance and roles are not supported.
- Newer source versions may produce unexpected output.
Who it suits
pgquarrel suits teams deploying PostgreSQL schema changes across testing, staging, or production environments. It is for schema work rather than table-data changes.
Verdict
pgquarrel provides a focused way to compare PostgreSQL schemas and generate deployment commands. Check its documented object coverage and source-to-target version caveat before relying on generated changes.
Where Specifiction places it
- Database Schema Comparison Tools#11 of 257.7