diff --git a/appview/db/db.go b/appview/db/db.go --- a/appview/db/db.go +++ b/appview/db/db.go @@ -27,14 +27,13 @@ PrepareContext(ctx context.Context, query string) (*sql.Stmt, error) } func Make(dbPath string) (*DB, error) { - db, err := sql.Open("sqlite3", dbPath) + db, err := sql.Open("sqlite3", dbPath+"?_foreign_keys=1") if err != nil { return nil, err } _, err = db.Exec(` pragma journal_mode = WAL; pragma synchronous = normal; - pragma foreign_keys = on; pragma temp_store = memory; pragma mmap_size = 30000000000; pragma page_size = 32768; diff --git a/cmd/punchcardPopulate/main.go b/cmd/punchcardPopulate/main.go --- a/cmd/punchcardPopulate/main.go +++ b/cmd/punchcardPopulate/main.go @@ -11,7 +11,7 @@ _ "github.com/mattn/go-sqlite3" ) func main() { - db, err := sql.Open("sqlite3", "./appview.db") + db, err := sql.Open("sqlite3", "./appview.db?_foreign_keys=1") if err != nil { log.Fatal("Failed to open database:", err) } diff --git a/eventconsumer/cursor/sqlite.go b/eventconsumer/cursor/sqlite.go --- a/eventconsumer/cursor/sqlite.go +++ b/eventconsumer/cursor/sqlite.go @@ -21,7 +21,7 @@ } } func NewSQLiteStore(dbPath string, opts ...SqliteStoreOpt) (*SqliteStore, error) { - db, err := sql.Open("sqlite3", dbPath) + db, err := sql.Open("sqlite3", dbPath+"?_foreign_keys=1") if err != nil { return nil, fmt.Errorf("failed to open sqlite database: %w", err) } diff --git a/knotserver/db/init.go b/knotserver/db/init.go --- a/knotserver/db/init.go +++ b/knotserver/db/init.go @@ -11,7 +11,7 @@ db *sql.DB } func Setup(dbPath string) (*DB, error) { - db, err := sql.Open("sqlite3", dbPath) + db, err := sql.Open("sqlite3", dbPath+"?_foreign_keys=1") if err != nil { return nil, err } @@ -19,7 +19,6 @@ _, err = db.Exec(` pragma journal_mode = WAL; pragma synchronous = normal; - pragma foreign_keys = on; pragma temp_store = memory; pragma mmap_size = 30000000000; pragma page_size = 32768; diff --git a/rbac/rbac.go b/rbac/rbac.go --- a/rbac/rbac.go +++ b/rbac/rbac.go @@ -43,7 +43,7 @@ if err != nil { return nil, err } - db, err := sql.Open("sqlite3", path) + db, err := sql.Open("sqlite3", path+"?_foreign_keys=1") if err != nil { return nil, err } diff --git a/rbac/rbac_test.go b/rbac/rbac_test.go --- a/rbac/rbac_test.go +++ b/rbac/rbac_test.go @@ -14,7 +14,7 @@ "github.com/stretchr/testify/assert" ) func setup(t *testing.T) *rbac.Enforcer { - db, err := sql.Open("sqlite3", ":memory:") + db, err := sql.Open("sqlite3", ":memory:?_foreign_keys=1") assert.NoError(t, err) a, err := adapter.NewAdapter(db, "sqlite3", "acl") diff --git a/spindle/db/db.go b/spindle/db/db.go --- a/spindle/db/db.go +++ b/spindle/db/db.go @@ -11,7 +11,7 @@ *sql.DB } func Make(dbPath string) (*DB, error) { - db, err := sql.Open("sqlite3", dbPath) + db, err := sql.Open("sqlite3", dbPath+"?_foreign_keys=1") if err != nil { return nil, err } @@ -19,7 +19,6 @@ _, err = db.Exec(` pragma journal_mode = WAL; pragma synchronous = normal; - pragma foreign_keys = on; pragma temp_store = memory; pragma mmap_size = 30000000000; pragma page_size = 32768; diff --git a/spindle/secrets/sqlite.go b/spindle/secrets/sqlite.go --- a/spindle/secrets/sqlite.go +++ b/spindle/secrets/sqlite.go @@ -24,7 +24,7 @@ } } func NewSQLiteManager(dbPath string, opts ...SqliteManagerOpt) (*SqliteManager, error) { - db, err := sql.Open("sqlite3", dbPath) + db, err := sql.Open("sqlite3", dbPath+"?_foreign_keys=1") if err != nil { return nil, fmt.Errorf("failed to open sqlite database: %w", err) }