Original post here [redlib link].
Written by deluan
The next release normalizes every ID in the database into a single format. It runs a one-time migration on first start. The PR with this change will be merged this weekend: https://github.com/navidrome/navidrome/pull/5824
If you run develop or auto-update, this lands soon (this weekend) and without warning. Make a backup of navidrome.db now. The migration is one-way, so rolling back (if needed) means restoring that backup.
The short version:
- Takes ~30s to ~1m20s on my 96k-track library (QNAP Celeron). Scales with library size.
- Everyone gets logged out once. Web UI and clients using the Navidrome API need to log in again. Subsonic clients authenticate per request, so they are unaffected.
- Song IDs change, album and artist IDs do not. Clients that cache song IDs (offline downloads, cached playlists) may need a re-sync.
- Cover art gets re-fetched, so the first browse after upgrading is slower.
- Share links keep working.
- Nothing is lost: favorites, ratings, play counts, bookmarks, play queues, scrobble history and Last.fm / ListenBrainz links all survive. No rescan needed.
- One manual fix:
.nspsmart playlists usinginPlaylistornotInPlaylistkeep the old playlist ID on disk and need updating by hand.
Full write-up: https://gist.github.com/deluan/917ebc243c8b486101de857ffae6739b
If you can, please test it with your favourite client once it is merged, and reply here (or on our Discord) if anything looks off.
EDIT: For app/client developers: I’ll merge the topSongsByArtistId PR at the same time as this ID migration. This means that you’ll be able to detect if a server is migrated by checking the getOpenSubsonicExtensions response and looking for the topSongsByArtistId extension.


Question: Is there a hard limit for playlists? Reason being, I have a rather large collection I have converted from the physical media to flac. I have a playlist that is edging 100k songs. When I try to play it in the Navidrome UI, it takes at least 5+ minutes to even begin to play, and then forwarding to another song is neigh impossible. I can play other playlists smaller than that in the UI. Feishin, which is indirectly routed through Cloudflare, and not taping the local IP of the server, has no issues playing the playlist in question. Substreamer, iOS, has no problem either.
Specs:
Optiplex 7020 i7-49790 32 GB RAM
…which seems like it would be sufficient.