Vellum/migrations/embed.go
mithral eb1ad6d920 Phase 0: skeleton, config, migrations, health check, container
Bootstraps Vellum as a single Go binary with one SQLite database.

- core: env-driven config, slog logging, SQLite (WAL) with pooled pragmas,
  embedded migration runner keyed on PRAGMA user_version
- migrations/0001_core.sql: identity, media, user state, infra. Media items
  are global; all per-user state (progress, favorites, grants) is a join.
  One polymorphic progress table covers every media kind.
- httpapi: request-ID, structured request logging, panic recovery, JSON
  endpoints for /healthz and /api/v1/version
- multi-arch Dockerfile (pure-Go SQLite, CGO_ENABLED=0) with an entrypoint
  that honours PUID/PGID like the rest of the self-hosted stack
- tests for migration idempotency, FK enforcement, WAL, config, middleware

Media does not exist yet. Nothing is exposed beyond health and version.
2026-10-09 16:26:08 -04:00

14 lines
500 B
Go

// Package migrations embeds the numbered SQL schema files.
//
// Files are applied in filename order by internal/core.Migrate. A new schema
// change is always a NEW file (NNNN_description.sql); existing files are never
// edited, because applied files are recorded only by their number in
// PRAGMA user_version and rewriting history silently corrupts existing DBs.
package migrations
import "embed"
// FS holds every .sql migration, embedded into the binary.
//
//go:embed *.sql
var FS embed.FS