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

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


The following commit(s) were added to refs/heads/4.1 by this push:
     new 955a1a42aa fix: prevent multiple pvm errors on migration (#31332)
955a1a42aa is described below

commit 955a1a42aa06f28947f2e2398272e318811e43cf
Author: Elizabeth Thompson <[email protected]>
AuthorDate: Thu Dec 12 16:26:36 2024 -0800

    fix: prevent multiple pvm errors on migration (#31332)
    
    (cherry picked from commit cd200f07a5067e36769ae2b71d2bed52aa54ddad)
---
 superset/migrations/shared/catalogs.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/superset/migrations/shared/catalogs.py 
b/superset/migrations/shared/catalogs.py
index 3f14598eb6..45d84e3036 100644
--- a/superset/migrations/shared/catalogs.py
+++ b/superset/migrations/shared/catalogs.py
@@ -505,7 +505,9 @@ def upgrade_schema_perms(
             .filter_by(name=current_perm)
             .one_or_none()
         ):
-            existing_pvm.name = new_perm
+            # check that new_perm does not exist
+            if not 
session.query(ViewMenu).filter_by(name=new_perm).one_or_none():
+                existing_pvm.name = new_perm
         elif new_perm:
             # new schema discovered, need to create a new permission
             perms[new_perm] = ("schema_access",)
@@ -683,7 +685,9 @@ def downgrade_schema_perms(
                 None,
                 schema,
             )
-            pvms_to_rename.append((pvm, new_name))
+            # check to see if the new name already exists
+            if not 
session.query(ViewMenu).filter_by(name=new_name).one_or_none():
+                pvms_to_rename.append((pvm, new_name))
         else:
             # non-default catalog, delete schema perm
             pvms_to_delete.append(pvm)

Reply via email to