Project

pgdiff

0.0
A long-lived project that still receives updates
Compares two PostgreSQL databases and generates the SQL statements needed to make their structure the same.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 0

Runtime

>= 0.17.0
 Project Readme

pgdiff¶ ↑

Overview¶ ↑

This pgdiff gem compares two PostgreSQL databases and generates SQL statements to update the source database to match the target datbase.

The script detects differences in:

* Schemas
* Extensions
* Domains
* Tables
* Sequences
* Views
* Constraints
* Indices
* Functions
* Triggers
* Rules

Two objects with the same name are considered equal if they have the same definitions.

pgdiff does not currently compare ownership, user rights, object dependencies, table inheritance, type casts, aggregates or operators. Patches are welcome to add this functionality.

Installation¶ ↑

Install pgdiff:

gem install pgdiff

Usage¶ ↑

To use pgdiff open a command prompt and runn the following command:

pg_diff --source "source_connection_string" --target "destination_connection_string"

The format of the connection strings are documented in the Ruby PG gem at www.rubydoc.info/gems/pg/PG/Connection.new.

For eample:

"host=localhost dbname=a_database user=a_user password=a_password"

Ignore Schemas¶ ↑

By default, pgdiff will not process the following system schemas:

* pg_catalog
* pg_toast
* information_schema

You may specify additions schemas to ingore using the ‘–ingore-schemas` flag:

pgdiff --ignore_schemas=schema1,schema2

Output¶ ↑

By default, pgdiff will output results to stdout. You may also specify a file path via the ‘–output` command line parameter:

pgdiff --ouput=/tmp/diff.sql

You can then run this sql script against your database.

Run The Script¶ ↑

The sql script generated by pgdiff will change your database. It is YOUR responsibility to verify the script before running it. pgdiff may have bugs, which could result in catastrophic, unrecoverable changes to your database. DO NOT RUN THIS ON A PRODUCTION DATABASE WITHOUT BACKING UP AND TESTING FIRST.

Support¶ ↑

If you have any questions or want to contribute to pgdiff please visit github.com/cfis/pgdiff.git

License¶ ↑

pgdiff is provided under the MIT license.