diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx index 634ad8ee5ef..8e047be4b9e 100644 --- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx +++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx @@ -257,9 +257,8 @@ function dbReducer( ...JSON.parse(action.payload.extra || ''), metadata_params: JSON.stringify(extra_json?.metadata_params), engine_params: JSON.stringify(extra_json?.engine_params), - schemas_allowed_for_csv_upload: JSON.stringify( + schemas_allowed_for_csv_upload: extra_json?.schemas_allowed_for_csv_upload, - ), }; } diff --git a/superset/models/core.py b/superset/models/core.py index 20ba0e5a754..ef3cd55426c 100755 --- a/superset/models/core.py +++ b/superset/models/core.py @@ -20,6 +20,7 @@ import enum import json import logging import textwrap +from ast import literal_eval from contextlib import closing from copy import deepcopy from datetime import datetime @@ -668,6 +669,10 @@ class Database( self, ) -> List[str]: allowed_databases = self.get_extra().get("schemas_allowed_for_csv_upload", []) + + if isinstance(allowed_databases, str): + allowed_databases = literal_eval(allowed_databases) + if hasattr(g, "user"): extra_allowed_databases = config["ALLOWED_USER_CSV_SCHEMA_FUNC"]( self, g.user