Files
krafttrainer/backend/internal/store/store.go
Christoph K. dfd66e43c6 Initial commit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 15:03:55 +01:00

38 lines
774 B
Go
Executable File

package store
import (
"database/sql"
"fmt"
_ "github.com/mattn/go-sqlite3"
)
// Store kapselt den Datenbankzugriff.
type Store struct {
db *sql.DB
}
// New erstellt einen neuen Store und konfiguriert SQLite.
func New(dbPath string) (*Store, error) {
db, err := sql.Open("sqlite3", dbPath+"?_journal_mode=WAL&_foreign_keys=ON")
if err != nil {
return nil, fmt.Errorf("Datenbank öffnen: %w", err)
}
if err := db.Ping(); err != nil {
return nil, fmt.Errorf("Datenbank-Verbindung prüfen: %w", err)
}
return &Store{db: db}, nil
}
// DB gibt die zugrundeliegende Datenbankverbindung zurück (für Migrations).
func (s *Store) DB() *sql.DB {
return s.db
}
// Close schliesst die Datenbankverbindung.
func (s *Store) Close() error {
return s.db.Close()
}