Diff PostgreSQL schemas.
Find differences and deploy changes quickly.

Postgres Compare is a Postgres diff tool that automatically detects the changes made to your database and produces the SQL required to keep everything up to date. Increase visibility, reduce errors and save time with Postgres Compare.

A preview of Postgres Compare

Diff Database and Schema Objects

Compare between live databases or snapshots from a point in time. Postgres Compare diffs the system catalogs and shows you where objects have been added, removed or changed.

SQL Migration Scripts

Automatically write the SQL you need to deploy changes between environments. Postgres Compare helps ensure you include dependent objects and warns you of any destructive changes you might make.


Test your migration scripts on demand. One click will spin up a clone of the target database, run the migration script and report any issues encountered.


Create beautiful reports to illustrate the state of your environments. Store and share reports via your Postgres Compare account.

Diff and Deploy Objects

Tables and Columns
Data types and Domains
Functions, Triggers, Operators and Rules
Users and Roles
Database and Server configuration


Manage multiple servers
Compare at the database, schema or object level
Create, save and execute SQL change scripts
Continuous integration support with the command line
Store snapshots to work offline or backup
Deployment warnings and dependency analysis
Powerful filters to exclude objects by type, name or difference type
Let us know what you need from Postgres Compare...
Compare Postgresql databases on your desktop

On Linux, MacOS and Windows

Postgres Compare goes where you go, so it's ready to work with your database environments straight away. It's cross platform too!

Postgres diff tool that runs on the web

On the web

Log in to your Postgres Compare account to enable cloud features. Share reports, upload snapshots and test your deployment scripts on demond.

How does Postgres Compare compare?

PostgreSQL's system catalogs store everything there is to know about the server and the structures contained in its databases. Postgres Compare uses the system catalogs to determine the changes that have been made. The differences produce the CREATE, ALTER and DELETE SQL that ensure the database is up to date.

Postgres Compare takes a snapshot of the server and stores it locally so you can easily keep track of changes or compare against old versions. Connections, comparisons and deployment scripts too are stored for re-use and reporting purposes.

As an example imagine you have changed the datatype of a column in your test environment. Postgres Compare looks at the pg_attribute system catalog and detects that the column has been changed compared to production. You go ahead and generate a deployment script that saves you time and ensures you don't miss anything!

ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);

Sign up to try the beta

We don't do unsolicited emails, just useful updates and invitations to try Postgres Compare.