This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 2d1f1e3d71adfebbdf4a6c09425f7279c60edcdf
Author: John Bodley <[email protected]>
AuthorDate: Mon Sep 18 05:49:51 2023 -0700

    fix: Add explicit ON DELETE CASCADE for dashboard_roles (#25320)
    
    (cherry picked from commit d54e827bb9f8eab8a7734bf7bdb8a5fdb2ae0c79)
---
 ...6f3_add_on_delete_cascade_for_dashboard_slices.py |  2 +-
 ...d_on_delete_cascade_for_embedded_dashboards.py.py |  2 +-
 ...b91_add_on_delete_cascade_for_dashboard_roles.py} | 20 ++++++++++----------
 superset/models/dashboard.py                         | 16 ++++++++++++++--
 4 files changed, 26 insertions(+), 14 deletions(-)

diff --git 
a/superset/migrations/versions/2023-08-09_14-17_8ace289026f3_add_on_delete_cascade_for_dashboard_slices.py
 
b/superset/migrations/versions/2023-08-09_14-17_8ace289026f3_add_on_delete_cascade_for_dashboard_slices.py
index caac489bd1..42e3507f7c 100644
--- 
a/superset/migrations/versions/2023-08-09_14-17_8ace289026f3_add_on_delete_cascade_for_dashboard_slices.py
+++ 
b/superset/migrations/versions/2023-08-09_14-17_8ace289026f3_add_on_delete_cascade_for_dashboard_slices.py
@@ -14,7 +14,7 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-"""add on delete cascade for dashboard slices
+"""add on delete cascade for dashboard_slices
 
 Revision ID: 8ace289026f3
 Revises: 2e826adca42c
diff --git 
a/superset/migrations/versions/2023-08-09_15-39_4448fa6deeb1__dd_on_delete_cascade_for_embedded_dashboards.py.py
 
b/superset/migrations/versions/2023-08-09_15-39_4448fa6deeb1__dd_on_delete_cascade_for_embedded_dashboards.py.py
index b50f637514..8d298863a6 100644
--- 
a/superset/migrations/versions/2023-08-09_15-39_4448fa6deeb1__dd_on_delete_cascade_for_embedded_dashboards.py.py
+++ 
b/superset/migrations/versions/2023-08-09_15-39_4448fa6deeb1__dd_on_delete_cascade_for_embedded_dashboards.py.py
@@ -14,7 +14,7 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-"""add on delete cascade for embedded dashboards
+"""add on delete cascade for embedded_dashboards
 
 Revision ID: 4448fa6deeb1
 Revises: 8ace289026f3
diff --git 
a/superset/migrations/versions/2023-08-09_14-17_8ace289026f3_add_on_delete_cascade_for_dashboard_slices.py
 
b/superset/migrations/versions/2023-09-15_12-58_4b85906e5b91_add_on_delete_cascade_for_dashboard_roles.py
similarity index 79%
copy from 
superset/migrations/versions/2023-08-09_14-17_8ace289026f3_add_on_delete_cascade_for_dashboard_slices.py
copy to 
superset/migrations/versions/2023-09-15_12-58_4b85906e5b91_add_on_delete_cascade_for_dashboard_roles.py
index caac489bd1..b712aca682 100644
--- 
a/superset/migrations/versions/2023-08-09_14-17_8ace289026f3_add_on_delete_cascade_for_dashboard_slices.py
+++ 
b/superset/migrations/versions/2023-09-15_12-58_4b85906e5b91_add_on_delete_cascade_for_dashboard_roles.py
@@ -14,32 +14,32 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-"""add on delete cascade for dashboard slices
+"""add on delete cascade for dashboard_roles
 
-Revision ID: 8ace289026f3
-Revises: 2e826adca42c
-Create Date: 2023-08-09 14:17:53.326191
+Revision ID: 4b85906e5b91
+Revises: 317970b4400c
+Create Date: 2023-09-15 12:58:26.772759
 
 """
 
 # revision identifiers, used by Alembic.
-revision = "8ace289026f3"
-down_revision = "2e826adca42c"
+revision = "4b85906e5b91"
+down_revision = "317970b4400c"
 
 
 from superset.migrations.shared.constraints import ForeignKey, redefine
 
 foreign_keys = [
     ForeignKey(
-        table="dashboard_slices",
+        table="dashboard_roles",
         referent_table="dashboards",
         local_cols=["dashboard_id"],
         remote_cols=["id"],
     ),
     ForeignKey(
-        table="dashboard_slices",
-        referent_table="slices",
-        local_cols=["slice_id"],
+        table="dashboard_roles",
+        referent_table="ab_role",
+        local_cols=["role_id"],
         remote_cols=["id"],
     ),
 ]
diff --git a/superset/models/dashboard.py b/superset/models/dashboard.py
index 0848126012..a88d361a0e 100644
--- a/superset/models/dashboard.py
+++ b/superset/models/dashboard.py
@@ -127,8 +127,20 @@ DashboardRoles = Table(
     "dashboard_roles",
     metadata,
     Column("id", Integer, primary_key=True),
-    Column("dashboard_id", Integer, ForeignKey("dashboards.id"), 
nullable=False),
-    Column("role_id", Integer, ForeignKey("ab_role.id"), nullable=False),
+    Column(
+        "dashboard_id",
+        Integer,
+        ForeignKey("dashboards.id"),
+        nullable=False,
+        on_delete="CASCADE",
+    ),
+    Column(
+        "role_id",
+        Integer,
+        ForeignKey("ab_role.id"),
+        nullable=False,
+        on_delete="CASCADE",
+    ),
 )
 
 

Reply via email to