Ships the source-id cleanup to all users: a marker-gated one-time migration in MusicDatabase init clears any source id (deezer/spotify/itunes/musicbrainz/ discogs/audiodb/qobuz/tidal) shared across differently-named artists — the enrichment-corruption signature. Same-name cross-server duplicates are left untouched (DISTINCT-name check). Cleared rows re-derive correct ids on the next enrichment pass; the now name-guarded workers won't re-corrupt. Runs once (CREATE TABLE _source_id_dedupe_v1 marker), idempotent, per-column try/except so a missing column can't abort it. Test forces a re-run and asserts corruption is cleared while a legit same-name dup survives. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| music_database.py | ||
| personalized_schema.py | ||