Files
minstrel/internal/db/migrations/0016_album_cover_source.up.sql
T
bvandeusenandClaude Opus 5.5 6028d78844
release / govulncheck (push) Successful in 17s
release / web (push) Successful in 1m33s
release / go (push) Successful in 1m49s
release / integration (push) Successful in 5m42s
release / android (push) Successful in 5m59s
release / Build signed APK (releases and dev) (push) Successful in 6m9s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Successful in 16s
release / Verify release artifacts (tag releases only) (push) Skipped
docs: migration headers keep the before and after, without ids, quotes or one library's numbers (#6277)
Applies rule 32's migration exception: each header still says what the
schema was, what changes and what it prevents, but task, milestone,
decision and rule ids are replaced by the practice they stood for, the
operator quotes by the decision, single-install counts are dropped, and
pointers to a deleted package and an external design doc are gone.
golang-migrate keeps no checksum, so editing applied migrations'
comments is safe.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 12:34:39 -04:00

20 lines
930 B
SQL

-- Album cover origin attribution.
-- 'embedded' — extracted from audio file (reserved).
-- 'sidecar' — found in the album directory (cover.jpg/folder.jpg/etc).
-- 'mbcaa' — fetched from MusicBrainz Cover Art Archive.
-- 'none' — tried, no cover available. Skip auto-retry; only manual.
ALTER TABLE albums ADD COLUMN cover_art_source text;
ALTER TABLE albums
ADD CONSTRAINT albums_cover_art_source_check
CHECK (cover_art_source IS NULL
OR cover_art_source IN ('embedded', 'sidecar', 'mbcaa', 'none'));
-- Backfill existing rows with cover_art_path set (defensive: scanner has
-- never populated cover_art_path in current dev, but keeps re-runs idempotent).
UPDATE albums SET cover_art_source = 'sidecar'
WHERE cover_art_path IS NOT NULL AND cover_art_source IS NULL;
-- Index supports "find missing covers" queries.
CREATE INDEX albums_cover_art_source_idx ON albums (cover_art_source);