rust_forum/src/database.rs

43 lines
999 B
Rust
Raw Normal View History

2024-11-30 19:36:20 +03:00
pub mod interaction;
pub mod post;
pub mod user;
2024-11-26 22:30:25 +03:00
use std::{sync::LazyLock, time::Duration};
use surrealdb::{
engine::remote::ws::{Client, Ws},
opt::auth::Root,
Surreal,
};
use tokio::time::sleep;
use crate::DatabaseConfig;
static DB: LazyLock<Surreal<Client>> = LazyLock::new(Surreal::init);
pub async fn establish_connection() {
let database_config = DatabaseConfig::default();
2024-11-29 20:31:02 +03:00
2024-11-26 22:30:25 +03:00
DB.connect::<Ws>(database_config.address).await.unwrap();
DB.signin(Root {
username: &database_config.username,
password: &database_config.password,
})
.await
.unwrap();
DB.use_ns(database_config.namespace).await.unwrap();
DB.use_db(database_config.database).await.unwrap();
}
pub async fn is_alive() -> bool {
tokio::select! {
alive_status = DB.health() => {
match alive_status {
Ok(_) => true,
Err(_) => false,
}
},
_ = sleep(Duration::from_secs(1)) => false
}
}