Files
HellreigN/backend/internal/storage/sqlite.go
T
d3m0k1d 28ef2dc1fd
ci-agent / build (push) Failing after 26s
chore: add sqlite init and config, add repository for sql
2026-04-03 22:48:31 +03:00

34 lines
654 B
Go

package storage
import (
"database/sql"
"fmt"
_ "modernc.org/sqlite"
"strings"
)
var pragmas = map[string]string{
`journal_mode`: `wal`,
`synchronous`: `normal`,
`busy_timeout`: `30000`,
}
func buildSqliteDsn(path string, pragmas map[string]string) string {
pragmastrs := make([]string, len(pragmas))
i := 0
for k, v := range pragmas {
pragmastrs[i] = (fmt.Sprintf(`pragma=%s(%s)`, k, v))
i++
}
return path + "?" + "mode=rwc&" + strings.Join(pragmastrs, "&")
}
func Open(path string) (*sql.DB, error) {
dsn := buildSqliteDsn(path, pragmas)
db, err := sql.Open("sqlite", dsn)
if err != nil {
return nil, err
}
return db, nil
}