diff options
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) { |