From ad82a8c14ea95f9939ec7b821bd7401f8597dd56 Mon Sep 17 00:00:00 2001 From: Beto Dealmeida Date: Fri, 1 Nov 2024 07:11:01 -0400 Subject: [PATCH] fix: catalog migration w/o connection (#30773) (cherry picked from commit 402c29c2bc1857812cc4330a604d2f0774200f14) --- superset/migrations/shared/catalogs.py | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/superset/migrations/shared/catalogs.py b/superset/migrations/shared/catalogs.py index b75214291b0d9..3f14598eb6e82 100644 --- a/superset/migrations/shared/catalogs.py +++ b/superset/migrations/shared/catalogs.py @@ -381,7 +381,17 @@ def upgrade_catalog_perms(engines: set[str] | None = None) -> None: # analytical DB. If we can't connect to the analytical DB during the migration # we should stop it, since we need the default catalog in order to update # existing models. - if default_catalog := database.get_default_catalog(): + try: + default_catalog = database.get_default_catalog() + except GenericDBException as ex: + logger.warning( + "Error fetching default catalog for database %s: %s", + database.database_name, + ex, + ) + continue + + if default_catalog: upgrade_database_catalogs(database, default_catalog, session) session.flush() @@ -558,7 +568,17 @@ def downgrade_catalog_perms(engines: set[str] | None = None) -> None: ) or not db_engine_spec.supports_catalog: continue - if default_catalog := database.get_default_catalog(): + try: + default_catalog = database.get_default_catalog() + except GenericDBException as ex: + logger.warning( + "Error fetching default catalog for database %s: %s", + database.database_name, + ex, + ) + continue + + if default_catalog: downgrade_database_catalogs(database, default_catalog, session) session.flush()