Files
minstrel/internal/db/migrations/0097_requeue_short_track_prints.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

21 lines
1.0 KiB
SQL

-- The image's fpcalc exits 3 ("Error decoding audio frame (End of file)") on
-- every file shorter than the span it is asked for, so every track under two
-- minutes failed both prints. Before: the failure was stored as a verdict, and
-- a verdict is not retried until the file changes. After: fpcalcReadToEnd keeps
-- those prints; clear the failures so the workers take them again.
-- The AcoustID lookup's queue takes a track with no lookup row.
DELETE FROM track_acoustid_lookups
WHERE state = 'failed'
AND detail LIKE '%Error decoding audio frame (End of file)%';
-- The fingerprint backfill's queue takes a track with no fingerprint row. A
-- NULL chromaprint is always a verdict (an inconclusive attempt stores
-- nothing), and on a track no longer than the span it was taken at it is this
-- failure. A track that is damaged fails again and is stamped again.
DELETE FROM track_fingerprints f
USING tracks t
WHERE f.track_id = t.id
AND f.chromaprint IS NULL
AND t.duration_ms <= f.chromaprint_length_sec * 1000;