accounters/src/lib.rs

25 lines
724 B
Rust
Raw Normal View History

use log::{error, info};
2024-02-12 14:04:03 +01:00
use sqlx::{migrate::MigrateDatabase, Sqlite, SqlitePool};
pub mod models;
pub async fn create_db(db_url: &str) -> sqlx::Result<SqlitePool> {
if !Sqlite::database_exists(db_url).await.unwrap_or(false) {
println!("Creating database {}", db_url);
match Sqlite::create_database(db_url).await {
Ok(_) => info!("create db success"),
Err(e) => {
error!("Cannot create db at {db_url}: {e:?}");
panic!("Cannot create db at {db_url}: {e:?}")
}
2024-02-12 14:04:03 +01:00
};
} else {
println!("Database already exists")
}
let db = SqlitePool::connect(db_url).await?;
sqlx::migrate!().run(&db).await?;
Ok(db)
}