mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2024-11-24 09:40:21 -06:00
Fixed an issue where schema diff is not working when providing the options to Foreign Data Wrapper, Foreign Server, and User Mapping. Fixes #5754
This commit is contained in:
parent
b53de0c31d
commit
52d0241a17
@ -19,3 +19,4 @@ Housekeeping
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #5754 <https://redmine.postgresql.org/issues/5754>`_ - Fixed an issue where schema diff is not working when providing the options to Foreign Data Wrapper, Foreign Server, and User Mapping.
|
||||
|
@ -682,13 +682,16 @@ class ForeignDataWrapperView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
"""
|
||||
is_valid_added_options = is_valid_changed_options = False
|
||||
|
||||
if 'fdwoptions' in data and 'added' in data['fdwoptions']:
|
||||
if 'fdwoptions' in data and data['fdwoptions'] is not None and\
|
||||
'added' in data['fdwoptions']:
|
||||
is_valid_added_options, data['fdwoptions']['added'] = \
|
||||
validate_options(
|
||||
data['fdwoptions']['added'],
|
||||
'fdwoption',
|
||||
'fdwvalue')
|
||||
if 'fdwoptions' in data and 'changed' in data['fdwoptions']:
|
||||
|
||||
if 'fdwoptions' in data and data['fdwoptions'] is not None and\
|
||||
'changed' in data['fdwoptions']:
|
||||
is_valid_changed_options, data['fdwoptions']['changed'] = \
|
||||
validate_options(
|
||||
data['fdwoptions']['changed'],
|
||||
@ -960,6 +963,10 @@ class ForeignDataWrapperView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
for row in rset['rows']:
|
||||
status, data = self._fetch_properties(row['oid'])
|
||||
if status:
|
||||
# For schema diff if fdwoptions is None then convert it to
|
||||
# the empty list.
|
||||
if 'fdwoptions' in data and data['fdwoptions'] is None:
|
||||
data['fdwoptions'] = []
|
||||
res[row['name']] = data
|
||||
|
||||
return res
|
||||
|
@ -641,14 +641,16 @@ class ForeignServerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
data[arg] = old_data[arg]
|
||||
|
||||
is_valid_added_options = is_valid_changed_options = False
|
||||
if 'fsrvoptions' in data and 'added' in data['fsrvoptions']:
|
||||
if 'fsrvoptions' in data and data['fsrvoptions'] is not None and\
|
||||
'added' in data['fsrvoptions']:
|
||||
is_valid_added_options, data['fsrvoptions']['added'] = \
|
||||
validate_options(
|
||||
data['fsrvoptions']['added'],
|
||||
'fsrvoption',
|
||||
'fsrvvalue')
|
||||
|
||||
if 'fsrvoptions' in data and 'changed' in data['fsrvoptions']:
|
||||
if 'fsrvoptions' in data and data['fsrvoptions'] is not None and\
|
||||
'changed' in data['fsrvoptions']:
|
||||
is_valid_changed_options, data['fsrvoptions']['changed'] = \
|
||||
validate_options(
|
||||
data['fsrvoptions']['changed'],
|
||||
@ -921,6 +923,10 @@ class ForeignServerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
for row in rset['rows']:
|
||||
status, data = self._fetch_properties(row['oid'])
|
||||
if status:
|
||||
# For schema diff if fsrvoptions is None then convert it to
|
||||
# the empty list.
|
||||
if 'fsrvoptions' in data and data['fsrvoptions'] is None:
|
||||
data['fsrvoptions'] = []
|
||||
res[row['name']] = data
|
||||
|
||||
return res
|
||||
|
@ -696,13 +696,15 @@ class UserMappingView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
# Allow user to set the blank value in fdwvalue
|
||||
# field in option model
|
||||
is_valid_added_options = is_valid_changed_options = False
|
||||
if 'umoptions' in data and 'added' in data['umoptions']:
|
||||
if 'umoptions' in data and data['umoptions'] is not None and\
|
||||
'added' in data['umoptions']:
|
||||
is_valid_added_options, data['umoptions']['added'] =\
|
||||
validate_options(
|
||||
data['umoptions']['added'],
|
||||
'umoption',
|
||||
'umvalue')
|
||||
if 'umoptions' in data and 'changed' in data['umoptions']:
|
||||
if 'umoptions' in data and data['umoptions'] is not None and\
|
||||
'changed' in data['umoptions']:
|
||||
is_valid_changed_options, data['umoptions']['changed'] =\
|
||||
validate_options(
|
||||
data['umoptions']['changed'],
|
||||
@ -873,6 +875,10 @@ class UserMappingView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
for row in rset['rows']:
|
||||
status, data = self._fetch_properties(row['oid'])
|
||||
if status:
|
||||
# For schema diff if umoptions is None then convert it to
|
||||
# the empty list.
|
||||
if 'umoptions' in data and data['umoptions'] is None:
|
||||
data['umoptions'] = []
|
||||
res[row['name']] = data
|
||||
|
||||
return res
|
||||
|
@ -33,6 +33,7 @@ def _get_source_list(added, source_dict, node, source_params, view_object,
|
||||
:param group_name: group name
|
||||
:return: list of source dict.
|
||||
"""
|
||||
global count
|
||||
source_only = []
|
||||
for item in added:
|
||||
source_object_id = None
|
||||
@ -109,6 +110,7 @@ def _get_target_list(removed, target_dict, node, target_params, view_object,
|
||||
:param group_name: group name.
|
||||
:return: list of target dict.
|
||||
"""
|
||||
global count
|
||||
target_only = []
|
||||
for item in removed:
|
||||
target_object_id = None
|
||||
@ -207,6 +209,7 @@ def _get_identical_and_different_list(intersect_keys, source_dict, target_dict,
|
||||
:param other_param:
|
||||
:return: return list of identical and different dict.
|
||||
"""
|
||||
global count
|
||||
identical = []
|
||||
different = []
|
||||
dict1 = kwargs['dict1']
|
||||
@ -349,7 +352,6 @@ def compare_dictionaries(**kwargs):
|
||||
# Keys that are available in source and missing in target.
|
||||
|
||||
added = dict1_keys - dict2_keys
|
||||
global count
|
||||
source_only = _get_source_list(added, source_dict, node, source_params,
|
||||
view_object, node_label, group_name)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user