Modified schema diff tool to compare two databases instead of two schemas. Fixes #5126
Branch ------ master Details ------- https://git.postgresql.org/gitweb?p=pgadmin4.git;a=commitdiff;h=4f74609ecfc73826c418df95c173b7f87ce2917c Modified Files -------------- docs/en_US/images/schema_diff_DDL_comparison.png | Bin 310526 -> 445311 bytes docs/en_US/images/schema_diff_compare_button.png | Bin 98827 -> 63793 bytes .../images/schema_diff_comparison_results.png | Bin 167068 -> 204651 bytes docs/en_US/images/schema_diff_dialog.png | Bin 302289 -> 372964 bytes docs/en_US/images/schema_diff_filter_option.png | Bin 156120 -> 156963 bytes docs/en_US/images/schema_diff_generate_script.png | Bin 309362 -> 0 bytes .../schema_diff_generate_script_query_editor.png | Bin 123478 -> 233673 bytes docs/en_US/release_notes_4_25.rst | 1 + docs/en_US/schema_diff.rst | 62 ++--- .../servers/databases/casts/__init__.py | 147 ++++++++-- .../servers/databases/event_triggers/__init__.py | 149 ++++++++-- .../event_triggers/sql/9.3_plus/update.sql | 3 + .../servers/databases/extensions/__init__.py | 101 ++++++- .../extensions/templates/extensions/sql/delete.sql | 2 +- .../templates/extensions/sql/properties.sql | 2 +- .../databases/foreign_data_wrappers/__init__.py | 150 ++++++++-- .../foreign_servers/__init__.py | 152 ++++++++-- .../foreign_servers/static/js/foreign_server.js | 4 +- .../foreign_servers/sql/9.3_plus/properties.sql | 6 +- .../foreign_servers/sql/default/properties.sql | 4 +- .../foreign_servers/sql/default/update.sql | 29 +- .../foreign_servers/user_mappings/__init__.py | 153 ++++++++-- .../templates/user_mappings/sql/default/delete.sql | 4 +- .../user_mappings/sql/default/properties.sql | 11 +- .../static/js/foreign_data_wrapper.js | 4 +- .../sql/9.3_plus/properties.sql | 2 +- .../foreign_data_wrappers/sql/9.3_plus/update.sql | 4 +- .../sql/default/properties.sql | 2 +- .../foreign_data_wrappers/sql/default/update.sql | 4 +- .../servers/databases/languages/__init__.py | 95 ++++++- .../templates/languages/sql/default/delete.sql | 4 +- .../templates/languages/sql/default/update.sql | 24 +- .../databases/schemas/collations/__init__.py | 11 - .../servers/databases/schemas/domains/__init__.py | 11 - .../databases/schemas/foreign_tables/__init__.py | 11 - .../schemas/fts_configurations/__init__.py | 26 +- .../databases/schemas/fts_dictionaries/__init__.py | 13 +- .../databases/schemas/fts_parsers/__init__.py | 26 +- .../databases/schemas/fts_templates/__init__.py | 26 +- .../databases/schemas/functions/__init__.py | 16 +- .../servers/databases/schemas/packages/__init__.py | 40 +-- .../databases/schemas/sequences/__init__.py | 11 - .../servers/databases/schemas/synonyms/__init__.py | 12 - .../servers/databases/schemas/tables/__init__.py | 89 ++++-- .../schemas/tables/compound_triggers/__init__.py | 14 +- .../tables/constraints/foreign_key/utils.py | 32 ++- .../databases/schemas/tables/indexes/__init__.py | 12 +- .../tables/row_security_policies/__init__.py | 14 +- .../databases/schemas/tables/rules/__init__.py | 32 +-- .../databases/schemas/tables/schema_diff_utils.py | 19 +- .../databases/schemas/tables/triggers/__init__.py | 7 +- .../servers/databases/schemas/tables/utils.py | 7 + .../servers/databases/schemas/types/__init__.py | 11 - .../servers/databases/schemas/views/__init__.py | 20 -- .../templates/depends/gpdb/5_plus/dependencies.sql | 18 +- .../templates/depends/pg/11_plus/dependencies.sql | 18 +- .../templates/depends/pg/12_plus/dependencies.sql | 18 +- .../templates/depends/pg/9.1_plus/dependencies.sql | 18 +- .../templates/depends/pg/9.5_plus/dependencies.sql | 18 +- .../depends/ppas/11_plus/dependencies.sql | 18 +- .../depends/ppas/12_plus/dependencies.sql | 18 +- .../depends/ppas/9.1_plus/dependencies.sql | 18 +- .../depends/ppas/9.5_plus/dependencies.sql | 18 +- .../servers/tests/test_dependencies_sql.py | 3 +- web/pgadmin/browser/utils.py | 83 +++--- web/pgadmin/tools/schema_diff/__init__.py | 309 +++++++++++++++++---- web/pgadmin/tools/schema_diff/compare.py | 49 ++-- web/pgadmin/tools/schema_diff/directory_compare.py | 73 ++++- .../tools/schema_diff/static/css/schema_diff.css | 4 + .../schema_diff/static/js/schema_diff.backform.js | 2 +- .../tools/schema_diff/static/js/schema_diff_ui.js | 101 ++----- .../schema_diff/tests/test_schema_diff_comp.py | 2 +- 72 files changed, 1624 insertions(+), 743 deletions(-)