diff --git a/src/metabase/models/card.clj b/src/metabase/models/card.clj index 38847d4df5819b0abb99d678abf248f64d49bf5c..597056a35fcdc52fb5022400f347e61f9d691765 100644 --- a/src/metabase/models/card.clj +++ b/src/metabase/models/card.clj @@ -58,6 +58,7 @@ :dashboards))))) (pre-cascade-delete [_ {:keys [id]}] + (cascade-delete 'Revision :model "Card" :model_id id) (cascade-delete 'DashboardCard :card_id id) (cascade-delete 'CardFavorite :card_id id))) diff --git a/src/metabase/models/dashboard.clj b/src/metabase/models/dashboard.clj index e6eb7259a3344a627c2be46b1f9afca0d139dc81..373a77c75d66a3a4098d71468579fd0a09616b10 100644 --- a/src/metabase/models/dashboard.clj +++ b/src/metabase/models/dashboard.clj @@ -32,6 +32,7 @@ map->DashboardInstance)) (pre-cascade-delete [_ {:keys [id]}] + (cascade-delete 'Revision :model "Dashboard" :model_id id) (cascade-delete DashboardCard :dashboard_id id))) (extend-ICanReadWrite DashboardEntity :read :public-perms, :write :public-perms) diff --git a/src/metabase/models/database.clj b/src/metabase/models/database.clj index 01c98545921165054aaa7b11a277a3147f7dcf0a..22d203a3463706177e583de0ea5a0845df459f00 100644 --- a/src/metabase/models/database.clj +++ b/src/metabase/models/database.clj @@ -31,6 +31,7 @@ :tables (delay (sel :many 'metabase.models.table/Table :db_id id :active true (order :display_name :ASC)))))) (pre-cascade-delete [_ {:keys [id] :as database}] + (cascade-delete 'metabase.models.card/Card :database_id id) (cascade-delete 'metabase.models.table/Table :db_id id))) (extend-ICanReadWrite DatabaseEntity :read :always, :write :superuser)