use crate::db::migrations;
use crate::libs::data_storage::DataStorage;
use anyhow::Result;
use rusqlite::Connection;
pub const DB_FILE_NAME: &str = "kasl.db";
pub struct Db {
pub conn: Connection,
}
impl Db {
pub fn new() -> Result<Self> {
let db_file_path = DataStorage::new().get_path(DB_FILE_NAME)?;
let mut conn = Connection::open(db_file_path)?;
conn.execute("PRAGMA foreign_keys = ON", [])?;
migrations::init_with_migrations(&mut conn)?;
Ok(Self { conn })
}
pub fn new_without_migrations() -> Result<Connection> {
let db_file_path = DataStorage::new().get_path(DB_FILE_NAME)?;
let conn = Connection::open(db_file_path)?;
conn.execute("PRAGMA foreign_keys = ON", [])?;
Ok(conn)
}
}