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)