package db import ( "database/sql" "fmt" _ "modernc.org/sqlite" ) func Open(path string) (*sql.DB, error) { db, err := sql.Open("sqlite", path) if err != nil { return nil, fmt.Errorf("open database: %w", err) } pragmas := []string{ "PRAGMA journal_mode = WAL", "PRAGMA foreign_keys = ON", "PRAGMA busy_timeout = 5000", } for _, p := range pragmas { if _, err := db.Exec(p); err != nil { _ = db.Close() return nil, fmt.Errorf("exec %q: %w", p, err) } } return db, nil }