From 61fdbf29496a23167ae88e94938cbc07a4144ecf Mon Sep 17 00:00:00 2001 From: emeric Date: Sun, 18 May 2025 11:16:45 +0200 Subject: [PATCH] Fixed artist info badly reported as matched using mbid --- src/libs/database/impl/Migration.cpp | 9 ++++++++- .../scanner/impl/scanners/ArtistInfoFileScanner.cpp | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/libs/database/impl/Migration.cpp b/src/libs/database/impl/Migration.cpp index 71640710..24d2afcd 100644 --- a/src/libs/database/impl/Migration.cpp +++ b/src/libs/database/impl/Migration.cpp @@ -35,7 +35,7 @@ namespace lms::db { namespace { - static constexpr Version LMS_DATABASE_VERSION{ 88 }; + static constexpr Version LMS_DATABASE_VERSION{ 89 }; } VersionInfo::VersionInfo() @@ -1189,6 +1189,13 @@ FROM tracklist)"); utils::executeCommand(*session.getDboSession(), "ALTER TABLE scan_settings ADD COLUMN artists_to_not_split TEXT NON NULL DEFAULT('')"); } + void migrateFromV88(Session& session) + { + // Badly populated mbid_matched fields for tracks and artist info: need to rescan everything + // Just increment the scan version of the settings to make the next scan rescan everything + utils::executeCommand(*session.getDboSession(), "UPDATE scan_settings SET scan_version = scan_version + 1"); + } + bool doDbMigration(Session& session) { constexpr std::string_view outdatedMsg{ "Outdated database, please rebuild it (delete the .db file and restart)" }; diff --git a/src/libs/services/scanner/impl/scanners/ArtistInfoFileScanner.cpp b/src/libs/services/scanner/impl/scanners/ArtistInfoFileScanner.cpp index ff4e497a..0a688995 100644 --- a/src/libs/services/scanner/impl/scanners/ArtistInfoFileScanner.cpp +++ b/src/libs/services/scanner/impl/scanners/ArtistInfoFileScanner.cpp @@ -141,6 +141,7 @@ namespace lms::scanner const metadata::Artist artistMetadata{ _parsedArtistInfo->mbid, _parsedArtistInfo->name, _parsedArtistInfo->sortName.empty() ? std::nullopt : std::make_optional(_parsedArtistInfo->sortName) }; db::Artist::pointer artist{ helpers::getOrCreateArtist(dbSession, artistMetadata, helpers::AllowFallbackOnMBIDEntry{ _settings.allowArtistMBIDFallback }) }; artistInfo.modify()->setArtist(artist); + artistInfo.modify()->setMBIDMatched(_parsedArtistInfo->mbid.has_value() && _parsedArtistInfo->mbid == artist->getMBID()); if (added) {