Fix schema search path

This commit is contained in:
Chris Tsang 2024-12-24 00:17:43 +00:00
parent e27e1d9657
commit 5a0ad8cc53

View File

@ -1,7 +1,7 @@
use futures::lock::Mutex; use futures::lock::Mutex;
use log::LevelFilter; use log::LevelFilter;
use sea_query::Values; use sea_query::Values;
use std::{future::Future, pin::Pin, sync::Arc}; use std::{fmt::Write, future::Future, pin::Pin, sync::Arc};
use sqlx::{ use sqlx::{
pool::PoolConnection, pool::PoolConnection,
@ -76,10 +76,13 @@ impl SqlxPostgresConnector {
); );
} }
} }
let set_search_path_sql = options let set_search_path_sql = options.schema_search_path.as_ref().map(|schema| {
.schema_search_path let mut string = "SET search_path = ".to_owned();
.as_ref() for schema in schema.split(',') {
.map(|schema| format!("SET search_path = \"{schema}\"")); write!(&mut string, "\"{schema}\"").unwrap();
}
string
});
let lazy = options.connect_lazy; let lazy = options.connect_lazy;
let mut pool_options = options.sqlx_pool_options(); let mut pool_options = options.sqlx_pool_options();
if let Some(sql) = set_search_path_sql { if let Some(sql) = set_search_path_sql {