{"id":13513447,"url":"https://github.com/eulerto/pgquarrel","last_synced_at":"2025-09-24T01:32:11.229Z","repository":{"id":3245140,"uuid":"41367709","full_name":"eulerto/pgquarrel","owner":"eulerto","description":"pgquarrel compares PostgreSQL database schemas (DDL)","archived":false,"fork":false,"pushed_at":"2023-03-27T14:18:46.000Z","size":3028,"stargazers_count":400,"open_issues_count":27,"forks_count":43,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-05-25T12:06:17.857Z","etag":null,"topics":["database","ddl","diff","postgresql","postgresql-client","schema"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eulerto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-08-25T14:21:33.000Z","updated_at":"2025-04-20T19:32:34.000Z","dependencies_parsed_at":"2024-01-13T19:23:21.636Z","dependency_job_id":"26ab682a-67d0-4326-8752-8634995ce7de","html_url":"https://github.com/eulerto/pgquarrel","commit_stats":{"total_commits":349,"total_committers":11,"mean_commits":"31.727272727272727","dds":"0.10888252148997135","last_synced_commit":"cac2dce4ef8406421335f51e4b90c948aaae5ce7"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/eulerto/pgquarrel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eulerto%2Fpgquarrel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eulerto%2Fpgquarrel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eulerto%2Fpgquarrel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eulerto%2Fpgquarrel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eulerto","download_url":"https://codeload.github.com/eulerto/pgquarrel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eulerto%2Fpgquarrel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276678846,"owners_count":25684803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-23T02:00:09.130Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","ddl","diff","postgresql","postgresql-client","schema"],"created_at":"2024-08-01T05:00:25.725Z","updated_at":"2025-09-24T01:32:10.981Z","avatar_url":"https://github.com/eulerto.png","language":"C","funding_links":[],"categories":["C","PLpgSQL","Database Tools"],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/eulerto/pgquarrel.svg?branch=master)](https://travis-ci.org/eulerto/pgquarrel)\n[![Coverity Status](https://scan.coverity.com/projects/8369/badge.svg)](https://scan.coverity.com/projects/pgquarrel)\n\nIntroduction\n============\n\n**pgquarrel** is a program that compares [PostgreSQL](http://www.postgresql.org/) database schemas (DDL).\n\nGiven two database connections, it output a file that represent the difference between schemas. It means that if you run the output file into the *target* database, it'll have the same schema as the *source* database. The main use case is to deploy database changes into testing, staging or production environment.\n\n**pgquarrel** does not rely on another tool (such as **pg\\_dump**) instead it connects directly to PostgreSQL server, obtain meta data from catalog, compare objects and output the commands necessary to turn *target* database into *source* database. It also has filter options; that means, you can compare part of your objects.\n\nIt could work with different PostgreSQL versions. The generated file could not work as expected if the *source* PostgreSQL version is greater than *target* PostgreSQL version. That's because the tool could generate commands that does not exist in a prior PostgreSQL version.\n\n**pgquarrel** does not manipulate data (i.e. INSERT, UPDATE, DELETE, COPY, etc).\n\nIt works with different operating systems. It was tested on Linux, FreeBSD, and Windows.\n\nInstallation\n============\n\n**pgquarrel** is distributed as a source package and can be downloaded at [GitHub](http://github.com/eulerto/pgquarrel). The installation steps depend on your operating system.\n\nYou can also keep up with the latest fixes and features cloning the Git repository.\n\n```\n$ git clone https://github.com/eulerto/pgquarrel.git\n```\n\nUNIX based Operating Systems\n----------------------------\n\nBefore installing **pgquarrel**, you should have PostgreSQL 9.0+ installed (including the header files). If PostgreSQL is not in your search path add -DCMAKE_PREFIX_PATH=/path/to/pgsql to cmake command. If you are using [PostgreSQL yum repository](https://yum.postgresql.org), install `postgresql13-devel` and add `-DCMAKE_PREFIX_PATH=/usr/pgsql-13` to cmake command. If you are using [PostgreSQL apt repository](https://wiki.postgresql.org/wiki/Apt), install `postgresql-server-dev-13` and add `-DCMAKE_PREFIX_PATH=/usr/lib/postgresql/13` to cmake command.\n\nIf you compile PostgreSQL by yourself and install it in `/home/euler/pg13`:\n\n```\n$ tar -zxf pgquarrel-0.7.0.tgz\n$ cd pgquarrel-0.7.0\n$ cmake -DCMAKE_INSTALL_PREFIX=$HOME/pgquarrel -DCMAKE_PREFIX_PATH=/home/euler/pg13 .\n$ make\n$ make install\n```\n\nIf you are using [PostgreSQL yum repository](https://yum.postgresql.org):\n\n```\n$ sudo yum install postgresql13-devel\n$ tar -zxf pgquarrel-0.7.0.tgz\n$ cd pgquarrel-0.7.0\n$ cmake -DCMAKE_INSTALL_PREFIX=$HOME/pgquarrel -DCMAKE_PREFIX_PATH=/usr/pgsql-13 .\n$ make\n$ make install\n```\n\nIf you are using [PostgreSQL apt repository](https://wiki.postgresql.org/wiki/Apt):\n\n```\n$ sudo apt-get install postgresql-server-dev-13\n$ tar -zxf pgquarrel-0.7.0.tgz\n$ cd pgquarrel-0.7.0\n$ cmake -DCMAKE_INSTALL_PREFIX=$HOME/pgquarrel -DCMAKE_PREFIX_PATH=/usr/lib/postgresql/13 .\n$ make\n$ make install\n```\n\n\nWindows\n-------\n\nYou should have CMake 2.8.11+ installed and MS Visual Studio (tested with 2017). Open CMake Gui. If PostgreSQL is not in your path add an entry CMAKE_PREFIX_PATH (e.g. C:/Program Files/PostgreSQL/10). Change CMAKE_INSTALL_PREFIX if you want to install in another directory. Click on 'Configure' and then 'Generate'. Open MS Visual Studio project (path is specified in CMake Gui), right-click on ALL_BUILD and 'Compile'. After that right-click on INSTALL and 'Deploy'.\n\nFeatures\n========\n\n**pgquarrel** does not support all of the PostgreSQL objects.\n\n\u003ctable\u003e\n\t\u003ctr\u003e\n\t\t\u003cth\u003eObject\u003c/th\u003e\n\t\t\u003cth\u003eSupport\u003c/th\u003e\n\t\t\u003cth\u003eComments\u003c/th\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eACCESS METHOD\u003c/td\u003e\n\t\t\u003ctd\u003ecomplete\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eAGGREGATE\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eCAST\u003c/td\u003e\n\t\t\u003ctd\u003ecomplete\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eCOLLATION\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eCOMMENT\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eCONVERSION\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eDOMAIN\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eEVENT TRIGGER\u003c/td\u003e\n\t\t\u003ctd\u003ecomplete\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eEXTENSION\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eFUNCTION\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eINDEX\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eLANGUAGE\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eMATERIALIZED VIEW\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eRULE\u003c/td\u003e\n\t\t\u003ctd\u003ecomplete\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eSCHEMA\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eSEQUENCE\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eTABLE\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eTRIGGER\u003c/td\u003e\n\t\t\u003ctd\u003ecomplete\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eTYPE\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eVIEW\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eGRANT\u003c/td\u003e\n\t\t\u003ctd\u003ecomplete\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eREVOKE\u003c/td\u003e\n\t\t\u003ctd\u003ecomplete\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eSECURITY LABEL\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eFOREIGN DATA WRAPPER\u003c/td\u003e\n\t\t\u003ctd\u003ecomplete\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eFOREIGN TABLE\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eSERVER\u003c/td\u003e\n\t\t\u003ctd\u003ecomplete\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eUSER MAPPING\u003c/td\u003e\n\t\t\u003ctd\u003ecomplete\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eTEXT SEARCH CONFIGURATION\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eTEXT SEARCH DICTIONARY\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eTEXT SEARCH PARSER\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eTEXT SEARCH TEMPLATE\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eOPERATOR\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eOPERATOR CLASS\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eOPERATOR FAMILY\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003ePUBLICATION\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eSUBSCRIPTION\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003ePOLICY\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eTRANSFORM\u003c/td\u003e\n\t\t\u003ctd\u003ecomplete\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003ePROCEDURE\u003c/td\u003e\n\t\t\u003ctd\u003epartial\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eALTER DEFAULT PRIVILEGES\u003c/td\u003e\n\t\t\u003ctd\u003euncertain\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eALTER LARGE OBJECT\u003c/td\u003e\n\t\t\u003ctd\u003euncertain\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eSTATISTICS\u003c/td\u003e\n\t\t\u003ctd\u003ecomplete\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\nAlthough **pgquarrel** does not support all PostgreSQL objects, it covers many of the use cases. In future releases, we expect to implement the TODO items to cover more cases. The main absences are:\n\n* inheritance;\n* roles.\n\nUsage\n=====\n\n```\n$ pgquarrel [OPTION]...\n```\n\nBy default, the changes will be output to stdout and only some kind of objects will be compared (those whose default is true).\n\nThe following command-line options are provided (all are optional):\n\n* `config (-c)`: configuration file that contains source and target connection information and kind of objects that will be compared.\n* `file (-f)`: send output to file, - for stdout (default: stdout).\n* `ignore-version`: ignore version check. pgquarrel uses the reserved keywords provided by the postgres version that it was compiled in. Server version greater than the compiled one could not properly quote some keywords used as identifiers.\n* `summary (-s)`: print a summary of changes.\n* `single-transaction (-t)`: output changes as a single transaction.\n* `temp-directory`: use this directory as a temporary area ( default: /tmp).\n* `verbose (-v)`: verbose mode.\n* `source-dbname`: source database name or connection string ( `keyword = value` strings or URIs).\n* `source-host`: source host name.\n* `source-port`: source port.\n* `source-username`: source user name.\n* `source-no-password`: never prompt for password.\n* `target-dbname`: target database name or connection string ( `keyword = value` strings or URIs).\n* `target-host`: target host name.\n* `target-port`: target port.\n* `target-username`: target user name.\n* `target-no-password`: never prompt for password.\n* `help`: print help.\n* `version`: print version.\n* `access-method`: access method comparison (default: false).\n* `aggregate`: aggregate comparison (default: false).\n* `cast`: cast comparison (default: false).\n* `collation`: collation comparison (default: false).\n* `comment`: comment comparison (default: false).\n* `conversion`: conversion comparison (default: false).\n* `domain`: domain comparison (default: true).\n* `event-trigger`: event trigger comparison (default: false).\n* `extension`: extension comparison (default: false).\n* `fdw`: foreign data wrapper comparison (default: false).\n* `foreign-table`: foreign table comparison (default: false).\n* `function`: function comparison (default: true).\n* `index`: index comparison (default: true).\n* `language`: language comparison (default: false).\n* `materialized-view`: materialized view comparison (default: true).\n* `operator`: operator comparison (default: false).\n* `policy`: policy comparison (default: false).\n* `procedure`: procedure comparison (default: true).\n* `publication`: publication comparison (default: false).\n* `owner`: owner comparison (default: false).\n* `privileges`: privileges comparison (default: false).\n* `rule`: rule comparison (default: false).\n* `schema`: schema comparison (default: true).\n* `security-labels`: security labels comparison (default: false).\n* `sequence`: sequence comparison (default: true).\n* `statistics`: statistics comparison (default: false).\n* `subscription`: subscription comparison (default: false).\n* `table`: table comparison (default: true).\n* `text-search`: text search comparison (default: false).\n* `transform`: transform comparison (default: false).\n* `trigger`: trigger comparison (default: true).\n* `type`: type comparison (default: true).\n* `view`: view comparison (default: true).\n* `include-schema`: include schemas that match pattern (default: all schemas).\n* `exclude-schema`: exclude schemas that match pattern (default: none).\n\nYou can use a configuration file to store the desired options. The _general_ section specifies which kind of objects will be output. The _target_ and _source_ section options specifies connection options to both servers. Have in mind that any command-line option can override the configuration file option. The configuration file contains the following structure:\n\n```\n[general]\noutput = /tmp/diff.sql\ntemp-directory = /tmp\nverbose = false\nsummary = false\ncomment = false\nsecurity-labels = false\nowner = false\nprivileges = false\nignore-version = false\nsingle-transaction = false\n\naccess-method = false\naggregate = false\ncast = false\ncollation = false\nconversion = false\ndomain = true\nevent-trigger = false\nextension = false\nfdw = false\nforeign-table = false\nfunction = true\nindex = true\nlanguage = false\nmaterialized-view = true\noperator = false\npolicy = false\nprocedure = true\npublication = false\nrule = false\nschema = true\nsequence = true\nstatistics = false\nsubscription = false\ntable = true\ntext-search = false\ntransform = false\ntrigger = true\ntype = true\nview = true\n\ninclude-schema = ^(hr|finance|account|crm|sales)$\nexclude-schema = ^public$\n\n[target]\nhost = 10.27.0.8\nport = 5432\ndbname = quarrel1\nuser = bob\nno-password = false\n\n[source]\nhost = 10.8.0.10\nport = 5432\ndbname = quarrel2\nuser = alice\nno-password = false\n```\n\nRegression Tests\n================\n\n```\n$ # adjust test/run-test.sh\n$ cd pgquarrel-0.7.0/test\n$ # test using 11 on both clusters\n$ ./run-test.sh 11 11 init\n```\n\nLicense\n=======\n\n\u003e Copyright © 2015-2020 Euler Taveira de Oliveira\n\u003e All rights reserved.\n\n\u003e Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\u003e Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer;\n\u003e Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution;\n\u003e Neither the name of the Euler Taveira de Oliveira nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\n\u003e THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feulerto%2Fpgquarrel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feulerto%2Fpgquarrel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feulerto%2Fpgquarrel/lists"}