6ca39859fa
The library scan silently skipped album folders with no MusicBrainz match (or an unreadable file). Persist them so they're visible and fixable. - New UnmatchedAlbum model (migration add_unmatched_album), keyed by path. - scan_chunk records a skipped album as unmatched (reason "no MusicBrainz match" or "unreadable: <err>"), clears the row when an album later resolves, and prunes stale rows (a prior scan's, or a removed folder) when a scan completes. - GET /api/library/unmatched lists them; DELETE ?id= dismisses one. - /library shows a "Couldn't match" section (path + reason + Dismiss). Worker + web tests added. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
16 lines
424 B
SQL
16 lines
424 B
SQL
-- CreateTable
|
|
CREATE TABLE "UnmatchedAlbum" (
|
|
"id" TEXT NOT NULL,
|
|
"artist" TEXT NOT NULL,
|
|
"album" TEXT NOT NULL,
|
|
"path" TEXT NOT NULL,
|
|
"reason" TEXT NOT NULL,
|
|
"scanId" TEXT NOT NULL,
|
|
"scannedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "UnmatchedAlbum_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "UnmatchedAlbum_path_key" ON "UnmatchedAlbum"("path");
|