diff --git a/ckanext/datastore/db.py b/ckanext/datastore/db.py index e1ff74ece7e..85ffe16af24 100644 --- a/ckanext/datastore/db.py +++ b/ckanext/datastore/db.py @@ -209,15 +209,18 @@ def create_table(context, data_dict): alias = data_dict.get('alias', None) if alias: # create alias view - sql_alias_string = u'create view "{alias}" as select * from "{main}"'.format(main=data_dict['resource_id'], alias=alias) + sql_alias_string = u'create view "{alias}" as select * from "{main}"'.format( + main=data_dict['resource_id'], alias=alias + ) context['connection'].execute(sql_alias_string) # add view to alias table - sql_add_alias = u'insert into "alias_mapping" values (\'{main}\', \'{alias}\')'.format(main=data_dict['resource_id'], alias=alias) + sql_add_alias = u'insert into "alias_mapping" values (\'{main}\', \'{alias}\')'.format( + main=data_dict['resource_id'], alias=alias + ) context['connection'].execute(sql_add_alias) - def alter_table(context, data_dict): '''alter table from combination of fields and first row of data''' supplied_fields = data_dict.get('fields', []) @@ -549,7 +552,10 @@ def delete(context, data_dict): }) if not 'filters' in data_dict: context['connection'].execute( - u'drop table "{}"'.format(data_dict['resource_id']) + u'drop table "{}" cascade'.format(data_dict['resource_id']) + ) + context['connection'].execute( + u"delete from alias_mapping where main = '{}'".format(data_dict['resource_id']) ) else: delete_data(context, data_dict)