diff options
author | Joris | 2025-02-07 10:35:20 +0100 |
---|---|---|
committer | Joris | 2025-02-07 10:35:20 +0100 |
commit | 582c03eacbc73b851aa232c404be71b2cf77295a (patch) | |
tree | 59c48474f03135a7cdb8c104f372a84f1777cac8 /src/db/mod.rs | |
parent | 8a78d6fcb970d256f7645d6c0a6f02da987a2896 (diff) |
Use strict mode for tables
Diffstat (limited to 'src/db/mod.rs')
-rw-r--r-- | src/db/mod.rs | 24 |
1 files changed, 18 insertions, 6 deletions
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<Connection> { 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)?) } |