diff --git a/arma/server/extension/src/surreal.rs b/arma/server/extension/src/surreal.rs index 74df542..527cebb 100644 --- a/arma/server/extension/src/surreal.rs +++ b/arma/server/extension/src/surreal.rs @@ -13,7 +13,7 @@ use crate::schema; pub type SurrealDb = Surreal; -const CLIENT_READY_TIMEOUT: Duration = Duration::from_secs(5); +const CLIENT_READY_TIMEOUT: Duration = Duration::from_secs(30); const CLIENT_READY_POLL_INTERVAL: Duration = Duration::from_millis(25); static SURREAL_DB: OnceLock = OnceLock::new(); @@ -80,6 +80,18 @@ pub async fn initialize(config: SurrealConfig) { } }; + log::log("surreal", "DEBUG", "Applying SurrealDB schemas"); + if let Err(error) = schema::apply_all(&db).await { + log::log( + "surreal", + "ERROR", + &format!("Failed to apply SurrealDB schemas: {}", error), + ); + set_failure_reason(error); + *SURREAL_CONNECTION_STATE.write().unwrap() = SurrealConnectionState::Failed; + return; + } + if SURREAL_DB.set(db).is_ok() { log::log("surreal", "INFO", "Connected to SurrealDB server"); *SURREAL_CONNECTION_STATE.write().unwrap() = SurrealConnectionState::Connected; @@ -121,8 +133,6 @@ async fn connect(config: SurrealConfig) -> Result { .await .map_err(|error| error.to_string())?; - schema::apply_all(&db).await?; - Ok(db) }