Server/src/database.rs
2023-12-25 15:40:00 +01:00

39 lines
1.2 KiB
Rust

use sea_orm::*;
const DATABASE_URL: &str = "sqlite:./test.db";
const DB_NAME: &str = "omegav";
pub(super) async fn set_up_db() -> Result<DatabaseConnection, DbErr> {
let db = Database::connect(DATABASE_URL).await?;
let db = match db.get_database_backend() {
DbBackend::MySql => {
db.execute(Statement::from_string(
db.get_database_backend(),
format!("CREATE DATABASE IF NOT EXISTS `{}`;", DB_NAME),
))
.await?;
let url = format!("{}/{}", DATABASE_URL, DB_NAME);
Database::connect(&url).await?
}
DbBackend::Postgres => {
db.execute(Statement::from_string(
db.get_database_backend(),
format!("DROP DATABASE IF EXISTS \"{}\";", DB_NAME),
))
.await?;
db.execute(Statement::from_string(
db.get_database_backend(),
format!("CREATE DATABASE \"{}\";", DB_NAME),
))
.await?;
let url = format!("{}/{}", DATABASE_URL, DB_NAME);
Database::connect(&url).await?
}
DbBackend::Sqlite => db,
};
Ok(db)
}