diff --git a/superset-frontend/src/datasource/DatasourceModal.tsx b/superset-frontend/src/datasource/DatasourceModal.tsx index 0f9f0754ba9..678ef8a725c 100644 --- a/superset-frontend/src/datasource/DatasourceModal.tsx +++ b/superset-frontend/src/datasource/DatasourceModal.tsx @@ -89,6 +89,9 @@ const DatasourceModal: FunctionComponent = ({ postPayload: { data: { ...currentDatasource, + schema: + currentDatasource.databaseSelector?.schema || + currentDatasource.tableSelector?.schema, metrics: currentDatasource?.metrics?.map( (metric: Record) => ({ ...metric, diff --git a/superset/connectors/base/models.py b/superset/connectors/base/models.py index 75792c130fb..d780a5672eb 100644 --- a/superset/connectors/base/models.py +++ b/superset/connectors/base/models.py @@ -247,6 +247,7 @@ class BaseDatasource( "filter_select_enabled": self.filter_select_enabled, "name": self.name, "datasource_name": self.datasource_name, + "table_name": self.datasource_name, "type": self.type, "schema": self.schema, "offset": self.offset, diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py index dfe6b6a9659..7292be48913 100644 --- a/superset/connectors/sqla/models.py +++ b/superset/connectors/sqla/models.py @@ -488,9 +488,7 @@ class SqlaTable( # pylint: disable=too-many-public-methods,too-many-instance-at "filter_select_enabled", "fetch_values_predicate", ] - update_from_object_fields = [ - f for f in export_fields if f not in ("table_name", "database_id") - ] + update_from_object_fields = [f for f in export_fields if not f == "database_id"] export_parent = "database" export_children = ["metrics", "columns"] diff --git a/tests/fixtures/datasource.py b/tests/fixtures/datasource.py index c57c9c3f0bf..c37753d91df 100644 --- a/tests/fixtures/datasource.py +++ b/tests/fixtures/datasource.py @@ -23,6 +23,7 @@ datasource_post = { "default_endpoint": "", "filter_select_enabled": True, "name": "birth_names", + "table_name": "birth_names", "datasource_name": "birth_names", "type": "table", "schema": "",