diff --git a/superset/dashboards/commands/importers/v1/__init__.py b/superset/dashboards/commands/importers/v1/__init__.py index 83d26fc7e7359..5d83a580bd606 100644 --- a/superset/dashboards/commands/importers/v1/__init__.py +++ b/superset/dashboards/commands/importers/v1/__init__.py @@ -112,7 +112,14 @@ def _import( and config["dataset_uuid"] in dataset_info ): # update datasource id, type, and name - config.update(dataset_info[config["dataset_uuid"]]) + dataset_dict = dataset_info[config["dataset_uuid"]] + config.update(dataset_dict) + # pylint: disable=line-too-long + dataset_uid = f"{dataset_dict['datasource_id']}__{dataset_dict['datasource_type']}" + config["params"].update({"datasource": dataset_uid}) + if "query_context" in config: + del config["query_context"] + chart = import_chart(session, config, overwrite=False) chart_ids[str(chart.uuid)] = chart.id diff --git a/tests/integration_tests/dashboards/commands_tests.py b/tests/integration_tests/dashboards/commands_tests.py index 6fe2b92aaecee..ad9152585e90a 100644 --- a/tests/integration_tests/dashboards/commands_tests.py +++ b/tests/integration_tests/dashboards/commands_tests.py @@ -565,6 +565,9 @@ def test_import_v1_dashboard(self, sm_g, utils_g): dataset = chart.table assert str(dataset.uuid) == dataset_config["uuid"] + assert chart.query_context is None + assert json.loads(chart.params)["datasource"] == dataset.uid + database = dataset.database assert str(database.uuid) == database_config["uuid"]