pgAdmin 4 commit: Added Schema Diff tool to compare two schemas and gen

From: Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>
To: pgadmin-hackers(at)lists(dot)postgresql(dot)org
Subject: pgAdmin 4 commit: Added Schema Diff tool to compare two schemas and gen
Date: 2020-01-10 10:12:45
Message-ID: E1iprHZ-0006Cp-Oy@gothos.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Added Schema Diff tool to compare two schemas and generate the difference script.

Currently supported objects are Table, View, Materialized View, Function and Procedure.

Backend comparison of two schemas implemented by: Akshay Joshi

Fixes #3452.

Branch
------
master

Details
-------
https://git.postgresql.org/gitweb?p=pgadmin4.git;a=commitdiff;h=45f2e35a99ee691d67c45982211238b8ad40d7de
Author: Khushboo Vashi <khushboo(dot)vashi(at)enterprisedb(dot)com>

Modified Files
--------------
docs/en_US/release_notes_4_18.rst | 1 +
.../browser/server_groups/servers/__init__.py | 2 +
.../server_groups/servers/databases/__init__.py | 3 +
.../servers/databases/schemas/__init__.py | 2 +
.../databases/schemas/collations/__init__.py | 65 +-
.../servers/databases/schemas/domains/__init__.py | 79 +-
.../domains/sql/9.2_plus/get_constraints.sql | 2 +-
.../domains/sql/default/get_constraints.sql | 2 +-
.../databases/schemas/foreign_tables/__init__.py | 116 +--
.../schemas/fts_configurations/__init__.py | 59 +-
.../databases/schemas/fts_dictionaries/__init__.py | 59 +-
.../databases/schemas/fts_parsers/__init__.py | 69 +-
.../databases/schemas/fts_templates/__init__.py | 70 +-
.../databases/schemas/functions/__init__.py | 92 ++-
.../servers/databases/schemas/packages/__init__.py | 105 ++-
.../schemas/packages/edbfuncs/__init__.py | 5 +-
.../databases/schemas/packages/edbvars/__init__.py | 5 +-
.../databases/schemas/sequences/__init__.py | 61 +-
.../servers/databases/schemas/synonyms/__init__.py | 64 +-
.../servers/databases/schemas/tables/__init__.py | 192 ++++-
.../databases/schemas/tables/columns/__init__.py | 1 +
.../schemas/tables/compound_triggers/__init__.py | 142 +++-
.../tables/constraints/index_constraint/utils.py | 4 +-
.../databases/schemas/tables/indexes/__init__.py | 204 ++++-
.../databases/schemas/tables/indexes/utils.py | 15 +-
.../schemas/tables/partitions/__init__.py | 183 ++++-
.../databases/schemas/tables/rules/__init__.py | 127 +++-
.../databases/schemas/tables/schema_diff_utils.py | 507 +++++++++++++
.../templates/columns/sql/10_plus/create.sql | 2 +-
.../templates/columns/sql/10_plus/update.sql | 12 +-
.../templates/columns/sql/12_plus/create.sql | 2 +-
.../templates/columns/sql/9.2_plus/update.sql | 10 +-
.../templates/columns/sql/default/create.sql | 2 +-
.../templates/columns/sql/default/update.sql | 14 +-
.../templates/partitions/sql/pg/10_plus/create.sql | 1 +
.../templates/tables/sql/10_plus/schema_diff.sql | 14 +
.../databases/schemas/tables/triggers/__init__.py | 116 ++-
.../databases/schemas/tables/triggers/utils.py | 17 +-
.../servers/databases/schemas/tables/utils.py | 113 ++-
.../servers/databases/schemas/types/__init__.py | 61 +-
.../servers/databases/schemas/utils.py | 148 ++--
.../servers/databases/schemas/views/__init__.py | 227 +++++-
.../templates/views/pg/9.2_plus/sql/update.sql | 2 +-
.../templates/views/pg/9.3_plus/sql/update.sql | 2 +-
.../templates/views/pg/9.4_plus/sql/update.sql | 2 +-
.../databases/templates/databases/css/database.css | 5 +
web/pgadmin/static/bundle/slickgrid.js | 3 +
web/pgadmin/static/js/backform.pgadmin.js | 9 +-
.../static/scss/resources/_default.variables.scss | 7 +
.../tools/datagrid/static/js/show_query_tool.js | 19 +
.../tools/datagrid/templates/datagrid/index.html | 9 +
web/pgadmin/tools/schema_diff/__init__.py | 601 +++++++++++++++
web/pgadmin/tools/schema_diff/compare.py | 212 ++++++
web/pgadmin/tools/schema_diff/directory_compare.py | 279 +++++++
web/pgadmin/tools/schema_diff/model.py | 76 ++
web/pgadmin/tools/schema_diff/node_registry.py | 61 ++
.../tools/schema_diff/static/css/schema_diff.css | 189 +++++
.../tools/schema_diff/static/img/compare-white.svg | 15 +
.../tools/schema_diff/static/img/compare.svg | 15 +
.../tools/schema_diff/static/img/script.svg | 19 +
.../schema_diff/static/js/schema_diff.backform.js | 500 ++++++++++++
.../tools/schema_diff/static/js/schema_diff.js | 145 ++++
.../schema_diff/static/js/schema_diff_hook.js | 38 +
.../tools/schema_diff/static/js/schema_diff_ui.js | 845 +++++++++++++++++++++
.../schema_diff/static/scss/_schema_diff.scss | 85 +++
.../schema_diff/templates/schema_diff/index.html | 31 +
web/pgadmin/tools/schema_diff/tests/__init__.py | 0
.../tools/schema_diff/tests/pg/10_plus/source.sql | 440 +++++++++++
.../tools/schema_diff/tests/pg/10_plus/target.sql | 429 +++++++++++
.../tools/schema_diff/tests/pg/11_plus/source.sql | 439 +++++++++++
.../tools/schema_diff/tests/pg/11_plus/target.sql | 428 +++++++++++
.../tools/schema_diff/tests/pg/12_plus/source.sql | 440 +++++++++++
.../tools/schema_diff/tests/pg/12_plus/target.sql | 417 ++++++++++
.../tools/schema_diff/tests/pg/9.2_plus/source.sql | 311 ++++++++
.../tools/schema_diff/tests/pg/9.2_plus/target.sql | 337 ++++++++
.../schema_diff/tests/ppas/10_plus/source.sql | 376 +++++++++
.../schema_diff/tests/ppas/10_plus/target.sql | 364 +++++++++
.../schema_diff/tests/ppas/9.2_plus/source.sql | 311 ++++++++
.../schema_diff/tests/ppas/9.2_plus/target.sql | 337 ++++++++
.../schema_diff/tests/test_schema_diff_comp.py | 204 +++++
web/pgadmin/tools/schema_diff/tests/utils.py | 103 +++
web/pgadmin/tools/sqleditor/static/js/sqleditor.js | 8 +
.../sqleditor/sql/default/primary_keys.sql | 2 +-
.../tools/sqleditor/utils/get_column_types.py | 11 +-
web/pgadmin/utils/csrf.py | 2 +
web/webpack.config.js | 4 +-
web/webpack.shim.js | 2 +
87 files changed, 10717 insertions(+), 392 deletions(-)

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Akshay Joshi 2020-01-10 10:13:49 Re: [Feature-3452] Schema diff tool with Table, View, Materialized View, Functions and Procedures
Previous Message Akshay Joshi 2020-01-10 07:26:32 Re: [pgAdmin][RM4827] Allow changing width of column in file dialog