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.
14 lines
500 B
Go
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
|