From 582c03eacbc73b851aa232c404be71b2cf77295a Mon Sep 17 00:00:00 2001 From: Joris Date: Fri, 7 Feb 2025 10:35:20 +0100 Subject: Use strict mode for tables --- src/db/mod.rs | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'src/db/mod.rs') diff --git a/src/db/mod.rs b/src/db/mod.rs index 20e7f81..0e73f30 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -1,5 +1,5 @@ pub mod categories; -pub mod event_color; +pub mod event_colors; pub mod events; use anyhow::Result; @@ -8,11 +8,23 @@ use rusqlite_migration::{Migrations, M}; pub fn init(db_path: &str) -> Result { let mut conn = Connection::open(db_path)?; + apply_migrations(&mut conn)?; + set_pragma(&conn, "foreign_keys", "ON")?; + set_pragma(&conn, "journal_mode", "wal")?; + Ok(conn) +} + +fn apply_migrations(conn: &mut Connection) -> Result<()> { let migrations = Migrations::new(vec![ - M::up(include_str!("migrations/1-init.sql")), - M::up(include_str!("migrations/2-categories.sql")), - M::up(include_str!("migrations/3-event-color.sql")), + M::up(include_str!("migrations/01-init.sql")), + M::up(include_str!("migrations/02-categories.sql")), + M::up(include_str!("migrations/03-event-color.sql")), + M::up(include_str!("migrations/04-strict-tables.sql")), ]); - migrations.to_latest(&mut conn)?; - Ok(conn) + migrations.to_latest(conn)?; + Ok(()) +} + +fn set_pragma(conn: &Connection, key: &str, value: &str) -> Result<()> { + Ok(conn.pragma_update(None, key, value)?) } -- cgit v1.2.3