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

From: Murtuza Zabuawala <murtuza(dot)zabuawala(at)enterprisedb(dot)com>
To: Khushboo Vashi <khushboo(dot)vashi(at)enterprisedb(dot)com>, Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>
Cc: pgadmin-hackers <pgadmin-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: pgAdmin 4 commit: Added Schema Diff tool to compare two schemas and gen
Date: 2020-01-13 09:20:53
Message-ID: CAKKotZRu4=n4CSwV11UKLpt1uEmTpD3CAtWt6fDvHqWurZvwHw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Khushboo,

We can create a common function in Server node to fetch the servers and
then use that same function in the schema diff tool, currently we have
written the same function in schema diff tool to avoid duplicate code.

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

On Fri, Jan 10, 2020 at 3:42 PM Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>
wrote:

> 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(-)
>
>

In response to

Browse pgadmin-hackers by date

  From Date Subject
Next Message Khushboo Vashi 2020-01-13 10:43:50 Re: Schema Diff UI Improvement
Previous Message Khushboo Vashi 2020-01-13 08:52:15 Re: Schema Diff UI Improvement