add embedded migrations

This commit is contained in:
Hay1tsme 2023-11-17 00:02:39 -05:00
parent 04924b9121
commit 579c5a0e72
1 changed files with 22 additions and 3 deletions

View File

@ -1,11 +1,29 @@
use diesel::{Connection, sqlite::SqliteConnection};
use diesel::{Connection, sqlite::{SqliteConnection, Sqlite}};
use hmac_sha256::Hash;
use diesel_migrations::{embed_migrations, EmbeddedMigrations, MigrationHarness};
use crate::{config::CORE_CFG, logging::{LogLevel, log}, to_hex};
pub mod schema;
pub mod user;
pub const MIGRATIONS: EmbeddedMigrations = embed_migrations!("migrations");
fn run_migrations(connection: &mut impl MigrationHarness<Sqlite>) -> bool {
match connection.run_pending_migrations(MIGRATIONS) {
Ok(m) => {
if m.len() > 0 {
log(LogLevel::Fatal, "db", "run_migrations", format!("New DB Version: {:?}", m[0]).as_str());
}
return true
},
Err(e) => {
log(LogLevel::Fatal, "db", "run_migrations", format!("Failed to run migrations: {:?}", e).as_str());
return false
},
}
}
pub fn connect() -> Option<SqliteConnection> {
let cfg = CORE_CFG.get().unwrap();
let t = SqliteConnection::establish(&cfg.sqlite_file);
@ -23,14 +41,15 @@ pub fn init_db() -> bool {
if conn.is_none() {
return false;
}
let mut conn = conn.unwrap();
let test_res = conn.unwrap().begin_test_transaction();
let test_res = conn.begin_test_transaction();
if test_res.is_err() {
log(LogLevel::Fatal, "Database", "init_db", format!("Test Transaction failed: {}", test_res.err().unwrap()).as_str());
return false;
}
true
return run_migrations(&mut conn);
}
pub fn get_hashed_uid(user_id: &u64) -> String {