From 03c57ba9ba8eea9dfcf11c5382fdb6822d5aa3d2 Mon Sep 17 00:00:00 2001 From: Sergey Tatarintsev Date: Fri, 10 May 2024 11:48:49 +0200 Subject: [PATCH] [WIP]: Fix datasource URL override for c-abi engine --- query-engine/query-engine-c-abi/src/engine.rs | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/query-engine/query-engine-c-abi/src/engine.rs b/query-engine/query-engine-c-abi/src/engine.rs index 6e744694c46f..4d3d81636755 100644 --- a/query-engine/query-engine-c-abi/src/engine.rs +++ b/query-engine/query-engine-c-abi/src/engine.rs @@ -133,16 +133,23 @@ impl QueryEngine { let datamodel = get_cstr_safe(constructor_options.datamodel).expect("Datamodel must be present"); let mut schema = psl::validate(datamodel.into()); + + let config = &mut schema.configuration; + config + .resolve_datasource_urls_query_engine( + &overrides, + |key| env.get(key).map(ToString::to_string), + // constructor_options.ignore_env_var_errors, + true, + ) + .map_err(|err| ApiError::conversion(err, schema.db.source_assert_single()))?; // extract the url for later use in apply_migrations - let url = schema - .configuration + let url = config .datasources .first() .unwrap() .load_url(|key| env::var(key).ok()) - .unwrap(); - - let config = &mut schema.configuration; + .map_err(|err| ApiError::conversion(err, schema.db.source_assert_single()))?; schema .diagnostics @@ -155,15 +162,6 @@ impl QueryEngine { _ => tracing::trace!("No base path provided"), } - config - .resolve_datasource_urls_query_engine( - &overrides, - |key| env.get(key).map(ToString::to_string), - // constructor_options.ignore_env_var_errors, - true, - ) - .map_err(|err| ApiError::conversion(err, schema.db.source_assert_single()))?; - config .validate_that_one_datasource_is_provided() .map_err(|errors| ApiError::conversion(errors, schema.db.source_assert_single()))?;