From 6cc52c614c5ace60e94e5d88d9f7a499e5d70cfe Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Tue, 28 Aug 2018 11:08:12 -0700 Subject: [PATCH] Prevent deleting databases that have attached tables (#5749) * Prevent deleting databases that have attached tables Similar to logic preventing deleting tables that have charts attached. * Addressing comments --- superset/views/core.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/superset/views/core.py b/superset/views/core.py index 3b22a49d07..2cb7bf43c0 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -256,6 +256,13 @@ class DatabaseView(SupersetModelView, DeleteMixin, YamlExportMixin): # noqa def pre_update(self, db): self.pre_add(db) + def pre_delete(self, obj): + if obj.tables: + raise SupersetException(Markup( + 'Cannot delete a database that has tables attached. ' + "Here's the list of associated tables: " + + ', '.join('{}'.format(o) for o in obj.tables))) + def _delete(self, pk): DeleteMixin._delete(self, pk)