Files
HellreigN/backend/internal/storage/sqlite.go
T
d3m0k1d d535831fc1
ci-agent / build (push) Failing after 2m55s
fix: fcking activate account
2026-04-04 20:39:48 +03:00

49 lines
1.0 KiB
Go

package storage
import (
"database/sql"
"fmt"
"log"
"strings"
_ "modernc.org/sqlite"
)
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
}
// Run migrations
if _, err := db.Exec(CreateSqlite); err != nil {
return nil, fmt.Errorf("migrate: %w", err)
}
// Migration: add is_active column if it doesn't exist
if _, err := db.Exec(AddIsActiveColumn); err != nil {
log.Printf("[sqlite] WARNING: failed to add is_active column: %v", err)
} else {
log.Println("[sqlite] is_active column migration applied")
}
return db, nil
}