diff_dict = directory_diff(source, target, difference={}) if 'event' in diff_dict or 'type' in diff_dict: delete_sql = self.get_sql_from_diff(gid=1, sid=tgt_params['sid'], did=tgt_params['did'], scid=tgt_params['scid'], tid=tgt_params['tid'], plid=target['oid'], drop_req=True) diff = self.get_sql_from_diff(gid=src_params['gid'], sid=src_params['sid'], did=src_params['did'], scid=src_params['scid'], tid=src_params['tid'], plid=source['oid']) return delete_sql + diff diff = self.get_sql_from_diff(gid=tgt_params['gid'], sid=tgt_params['sid'], did=tgt_params['did'], scid=tgt_params['scid'], tid=tgt_params['tid'], plid=target['oid'], data=diff_dict) return '\n' + diff SchemaDiffRegistry(blueprint.node_type, RowSecurityView, 'table') RowSecurityView.register_node_view(blueprint)
gid = kwargs.get('gid') sid = kwargs.get('sid') did = kwargs.get('did') oid = kwargs.get('oid') data = kwargs.get('data', None) drop_sql = kwargs.get('drop_sql', False) if data: if 'pub' in data and type(data['pub']) == str: # Convert publication details to list data['pub'] = data['pub'].split(',,') sql, name = self.get_sql(data=data, subid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, subid=oid, only_sql=True) else: sql = self.sql(gid=gid, sid=sid, did=did, subid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, SubscriptionView, 'Database') SubscriptionView.register_node_view(blueprint)
doid=oid, is_schema_diff=True) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, scid=scid, doid=oid, only_sql=True) elif target_schema: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, doid=oid, target_schema=target_schema, json_resp=False) else: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, doid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, DomainView) DomainView.register_node_view(blueprint)
sid = kwargs.get('sid') did = kwargs.get('did') oid = kwargs.get('oid') data = kwargs.get('data', None) drop_sql = kwargs.get('drop_sql', False) if data: sql, name = self.get_sql(gid=gid, sid=sid, did=did, data=data, cid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, cid=oid, only_sql=True) else: sql = self.sql(gid=gid, sid=sid, did=did, cid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, CastView, 'Database') CastView.register_node_view(blueprint)
:return: """ gid = kwargs.get('gid') sid = kwargs.get('sid') did = kwargs.get('did') scid = kwargs.get('scid') oid = kwargs.get('oid') data = kwargs.get('data', None) drop_sql = kwargs.get('drop_sql', False) target_schema = kwargs.get('target_schema', None) if data: if target_schema: data['schema'] = target_schema sql, name = self.get_SQL(gid, sid, did, data, scid, oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, scid=scid, seid=oid, only_sql=True) elif target_schema: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, seid=oid, target_schema=target_schema, json_resp=False) else: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, seid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, SequenceView) SequenceView.register_node_view(blueprint)
and len(diff_dict[key]['added']) > 0) or ('changed' in diff_dict[key] and len(diff_dict[key]['changed']) > 0) or ('deleted' in diff_dict[key] and len(diff_dict[key]['deleted']) > 0)): create_req = True elif key != 'columns': create_req = True if create_req: diff = self.get_sql_from_index_diff(sid=tgt_params['sid'], did=tgt_params['did'], scid=tgt_params['scid'], tid=tgt_params['tid'], idx=target['oid'], diff_schema=target_schema, drop_req=True) else: diff = self.get_sql_from_index_diff(sid=tgt_params['sid'], did=tgt_params['did'], scid=tgt_params['scid'], tid=tgt_params['tid'], idx=target['oid'], data=diff_dict) return diff SchemaDiffRegistry(blueprint.node_type, IndexesView, 'table') IndexesView.register_node_view(blueprint)
def get_sql_from_diff(self, **kwargs): """ This function is used to get the DDL/DML statements. :param kwargs :return: """ gid = kwargs.get('gid') sid = kwargs.get('sid') did = kwargs.get('did') fdw_id = kwargs.get('fdwid') oid = kwargs.get('oid') data = kwargs.get('data', None) drop_sql = kwargs.get('drop_sql', False) if data: sql, name = self.get_sql(gid=gid, sid=sid, did=did, data=data, fid=fdw_id, fsid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, fid=fdw_id, fsid=oid, only_sql=True) else: sql = self.sql(gid=gid, sid=sid, did=did, fid=fdw_id, fsid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, ForeignServerView, 'Database') ForeignServerView.register_node_view(blueprint)
'scid': scid }) except Exception as e: return internal_server_error(errormsg=str(e)) def ddl_compare(self, **kwargs): """ This function returns the DDL/DML statements based on the comparison status. :param kwargs: :return: """ tgt_params = kwargs.get('target_params') parent_source_data = kwargs.get('parent_source_data') parent_target_data = kwargs.get('parent_target_data') diff = self.get_sql_from_diff(sid=tgt_params['sid'], did=tgt_params['did'], scid=tgt_params['scid'], tid=tgt_params['tid'], source_data=parent_source_data, target_data=parent_target_data) return diff + '\n' SchemaDiffRegistry(blueprint.node_type, PartitionsView, 'table') PartitionsView.register_node_view(blueprint)
""" gid = kwargs.get('gid') sid = kwargs.get('sid') did = kwargs.get('did') scid = kwargs.get('scid') oid = kwargs.get('oid') data = kwargs.get('data', None) diff_schema = kwargs.get('diff_schema', None) drop_sql = kwargs.get('drop_sql', False) if data: if diff_schema: data['schema'] = diff_schema sql, name = self.get_sql(gid=gid, sid=sid, did=did, scid=scid, data=data, cfgid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, scid=scid, cfgid=oid, only_sql=True) elif diff_schema: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, cfgid=oid, diff_schema=diff_schema, json_resp=False) else: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, cfgid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, FtsConfigurationView) FtsConfigurationView.register_node_view(blueprint)
scid=scid, coid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, scid=scid, coid=oid, only_sql=True) elif target_schema: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, coid=oid, target_schema=target_schema, json_resp=False) else: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, coid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, CollationView) CollationView.register_node_view(blueprint)
data['columns'] = tmp_columns tmp_constraints = [] if 'constraints' in data: if 'added' in data['constraints']: for item in data['constraints']['added']: tmp_constraints.append(item) if 'changed' in data['constraints']: for item in data['constraints']['changed']: tmp_constraints.append(item) data['constraints'] = tmp_constraints tmp_ftoptions = [] if 'ftoptions' in old_data: tmp_ftoptions = old_data['ftoptions'] if 'ftoptions' in data: if 'added' in data['ftoptions']: for item in data['ftoptions']['added']: tmp_ftoptions.append(item) if 'changed' in data['ftoptions']: for item in data['ftoptions']['changed']: tmp_ftoptions.append(item) if 'deleted' in data['ftoptions']: for item in data['ftoptions']['deleted']: tmp_ftoptions.remove(item) data['ftoptions'] = tmp_ftoptions SchemaDiffRegistry(blueprint.node_type, ForeignTableView) ForeignTableView.register_node_view(blueprint)
:param kwargs: :return: """ gid = kwargs.get('gid') sid = kwargs.get('sid') did = kwargs.get('did') oid = kwargs.get('oid') data = kwargs.get('data', None) drop_sql = kwargs.get('drop_sql', False) if data: sql = self.get_sql(data=data, etid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, etid=oid, only_sql=True) else: sql = self.sql(gid=gid, sid=sid, did=did, etid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, EventTriggerView, 'Database') EventTriggerView.register_node_view(blueprint)
:param kwargs: :return: """ gid = kwargs.get('gid') sid = kwargs.get('sid') did = kwargs.get('did') oid = kwargs.get('oid') data = kwargs.get('data', None) drop_sql = kwargs.get('drop_sql', False) if data: sql, name = self.get_sql(data=data, pbid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, pbid=oid, only_sql=True) else: sql = self.sql(gid=gid, sid=sid, did=did, pbid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, PublicationView, 'Database') PublicationView.register_node_view(blueprint)
def get_sql_from_diff(self, **kwargs): """ This function is used to get the DDL/DML statements. :param kwargs :return: """ gid = kwargs.get('gid') sid = kwargs.get('sid') did = kwargs.get('did') oid = kwargs.get('oid') data = kwargs.get('data', None) drop_sql = kwargs.get('drop_sql', False) if data: sql, name = self.getSQL(gid=gid, sid=sid, did=did, data=data, eid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, eid=oid, only_sql=True) else: sql = self.sql(gid=gid, sid=sid, did=did, eid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, ExtensionView, 'Database') # Register and add ExtensionView as blueprint ExtensionView.register_node_view(blueprint)
did: Database ID """ dependents_result = self.get_dependents(self.conn, did) if \ self.conn.connected() else [] return ajax_response( response=dependents_result, status=200 ) @check_precondition() def dependencies(self, gid, sid, did): """ This function gets the dependencies and returns an ajax response for the database. Args: gid: Server Group ID sid: Server ID did: Database ID """ dependencies_result = self.get_dependencies(self.conn, did) if \ self.conn.connected() else [] return ajax_response( response=dependencies_result, status=200 ) SchemaDiffRegistry(blueprint.node_type, DatabaseView) DatabaseView.register_node_view(blueprint)
:param kwargs: :return: """ gid = kwargs.get('gid') sid = kwargs.get('sid') did = kwargs.get('did') oid = kwargs.get('oid') data = kwargs.get('data', None) drop_sql = kwargs.get('drop_sql', False) if data: sql, name = self.get_sql(data=data, lid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, lid=oid, only_sql=True) else: sql = self.sql(gid=gid, sid=sid, did=did, lid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, LanguageView, 'Database') LanguageView.register_node_view(blueprint)
data=data, tid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, scid=scid, tid=oid, only_sql=True) elif diff_schema: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, tid=oid, diff_schema=diff_schema, json_resp=False) else: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, tid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, FtsTemplateView) FtsTemplateView.register_node_view(blueprint)
data['schema'] = diff_schema sql, name = self.getSQL(gid, sid, did, data, scid, oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, scid=scid, pkgid=oid, only_sql=True) elif diff_schema: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, pkgid=oid, diff_schema=diff_schema, json_resp=False) else: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, pkgid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, PackageView) PackageView.register_node_view(blueprint)
""")) old_data = res['rows'][0] old_data = self._formatter(old_data, scid) # Privileges self.format_request_acls(old_data, specific=['nspacl']) # Render sql from create & alter sql using properties & acl data SQL = '' SQL = render_template( "/".join([self.template_path, 'sql/create.sql']), _=gettext, data=old_data, conn=self.conn ) sql_header = u""" -- CATALOG: {0} -- DROP SCHEMA {0};( """.format(old_data['name']) SQL = sql_header + SQL return ajax_response(response=SQL.strip("\n")) SchemaDiffRegistry(schema_blueprint.node_type, SchemaView) SchemaView.register_node_view(schema_blueprint) CatalogView.register_node_view(catalog_blueprint)
elif comp_status == 'target_only': diff = self.get_sql_from_diff(gid=tgt_params['gid'], sid=tgt_params['sid'], did=tgt_params['did'], scid=tgt_params['scid'], tid=tgt_params['tid'], oid=target['oid'], drop_sql=True) elif comp_status == 'different': diff_dict = directory_diff(source, target, ignore_keys=self.keys_to_ignore, difference={}) parse_acl(source, target, diff_dict) diff = self.get_sql_from_diff(gid=tgt_params['gid'], sid=tgt_params['sid'], did=tgt_params['did'], scid=tgt_params['scid'], tid=tgt_params['tid'], oid=target['oid'], source_schema=source['schema'], diff_schema=target_schema, data=diff_dict) return diff SchemaDiffRegistry(blueprint.node_type, RuleView, 'table') RuleView.register_node_view(blueprint)
sql, name = self.get_sql(gid, sid, data, scid, oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, scid=scid, syid=oid, only_sql=True) elif diff_schema: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, syid=oid, diff_schema=diff_schema, json_resp=False) else: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, syid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, SynonymView) SynonymView.register_node_view(blueprint)
data = kwargs.get('data', None) drop_sql = kwargs.get('drop_sql', False) if data: sql, name = self.get_sql(gid=gid, sid=sid, did=did, scid=scid, data=data, pid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, scid=scid, pid=oid, only_sql=True) else: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, pid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, FtsParserView) FtsParserView.register_node_view(blueprint)
tid=src_params['tid'], oid=source['oid']) elif comp_status == 'target_only': diff = self.get_sql_from_diff(gid=tgt_params['gid'], sid=tgt_params['sid'], did=tgt_params['did'], scid=tgt_params['scid'], tid=tgt_params['tid'], oid=target['oid'], drop_sql=True) elif comp_status == 'different': diff_dict = directory_diff(source, target, ignore_keys=self.keys_to_ignore, difference={}) parse_acl(source, target, diff_dict) diff = self.get_sql_from_diff(gid=tgt_params['gid'], sid=tgt_params['sid'], did=tgt_params['did'], scid=tgt_params['scid'], tid=tgt_params['tid'], oid=target['oid'], data=diff_dict) return diff SchemaDiffRegistry(blueprint.node_type, CompoundTriggerView, 'table') CompoundTriggerView.register_node_view(blueprint)
data=data, dcid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, scid=scid, dcid=oid, only_sql=True) elif target_schema: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, dcid=oid, target_schema=target_schema, json_resp=False) else: sql = self.sql(gid=gid, sid=sid, did=did, scid=scid, dcid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, FtsDictionaryView) FtsDictionaryView.register_node_view(blueprint)
def get_sql_from_diff(self, **kwargs): """ This function is used to get the DDL/DML statements. :param kwargs: :return: """ gid = kwargs.get('gid') sid = kwargs.get('sid') did = kwargs.get('did') fid = kwargs.get('fdwid') fsid = kwargs.get('fsid') oid = kwargs.get('oid') data = kwargs.get('data', None) drop_sql = kwargs.get('drop_sql', False) if data: sql, name = self.get_sql(data=data, fsid=fsid, umid=oid) else: if drop_sql: sql = self.delete(gid=gid, sid=sid, did=did, fid=fid, fsid=fsid, umid=oid, only_sql=True) else: sql = self.sql(gid=gid, sid=sid, did=did, fid=fid, fsid=fsid, umid=oid, json_resp=False) return sql SchemaDiffRegistry(blueprint.node_type, UserMappingView, 'Database') UserMappingView.register_node_view(blueprint)