package db import ( "context" "database/sql" "github.com/Southclaws/fault" "github.com/lmika/blogging-tools/providers/db/sqlc/maindbq" "github.com/lmika/blogging-tools/sql/maindb/schema" migration "lmika.dev/pkg/litemigrate" ) type Provider struct { drvr *sql.DB queries *maindbq.Queries } func New(dbFile string) (*Provider, error) { drvr, err := sql.Open("sqlite", dbFile) if err != nil { return nil, fault.Wrap(err) } if err := migration.New(schema.FS, drvr).MigrateUp(context.Background()); err != nil { return nil, fault.Wrap(err) } if _, err := drvr.Exec(`PRAGMA foreign_keys = 1;`); err != nil { return nil, fault.Wrap(err) } return &Provider{ drvr: drvr, queries: maindbq.New(drvr), }, nil } func (db *Provider) Close() error { return db.drvr.Close() }