diff options
author | June McEnroe <june@causal.agency> | 2019-12-02 02:05:53 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2019-12-02 02:06:10 -0500 |
commit | 926138b463fff770cf5fbb4438853d535205da2b (patch) | |
tree | b55ab230c7c033a9033c1dffcbb19dbb197c6b24 /database.h | |
parent | Implement DB initialization and migration (diff) | |
download | litterbox-926138b463fff770cf5fbb4438853d535205da2b.tar.gz litterbox-926138b463fff770cf5fbb4438853d535205da2b.zip |
Enable foreign key enforcement
Diffstat (limited to 'database.h')
-rw-r--r-- | database.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/database.h b/database.h index 290564e..b98721b 100644 --- a/database.h +++ b/database.h @@ -47,14 +47,19 @@ static inline sqlite3 *dbOpen(char *path, int flags) { if (error && errno != EEXIST) err(EX_CANTCREAT, "%s", path); *base = '/'; } + sqlite3 *db; int error = sqlite3_open_v2(path, &db, flags, NULL); - if (!error) return db; if (error == SQLITE_CANTOPEN) { sqlite3_close(db); return NULL; } - errx(EX_NOINPUT, "%s: %s", path, sqlite3_errmsg(db)); + if (error) errx(EX_NOINPUT, "%s: %s", path, sqlite3_errmsg(db)); + + error = sqlite3_exec(db, "PRAGMA foreign_keys = true;", NULL, NULL, NULL); + if (error) errx(EX_SOFTWARE, "sqlite3_exec: %s", sqlite3_errmsg(db)); + + return db; } static inline sqlite3 *dbFind(int flags) { |