mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-14 09:03:49 -07:00
Fixed: Restore old Sqlite version compatibility
This commit is contained in:
parent
da41220914
commit
a2d7239304
2 changed files with 39 additions and 28 deletions
|
@ -63,13 +63,15 @@ namespace NzbDrone.Core.ArtistStats
|
||||||
|
|
||||||
private SqlBuilder Builder()
|
private SqlBuilder Builder()
|
||||||
{
|
{
|
||||||
|
var trueIndicator = _database.DatabaseType == DatabaseType.PostgreSQL ? "true" : "1";
|
||||||
|
|
||||||
return new SqlBuilder(_database.DatabaseType)
|
return new SqlBuilder(_database.DatabaseType)
|
||||||
.Select(@"""Artists"".""Id"" AS ""ArtistId"",
|
.Select($@"""Artists"".""Id"" AS ""ArtistId"",
|
||||||
""Albums"".""Id"" AS ""AlbumId"",
|
""Albums"".""Id"" AS ""AlbumId"",
|
||||||
SUM(COALESCE(""TrackFiles"".""Size"", 0)) AS ""SizeOnDisk"",
|
SUM(COALESCE(""TrackFiles"".""Size"", 0)) AS ""SizeOnDisk"",
|
||||||
COUNT(""Tracks"".""Id"") AS ""TotalTrackCount"",
|
COUNT(""Tracks"".""Id"") AS ""TotalTrackCount"",
|
||||||
SUM(CASE WHEN ""Tracks"".""TrackFileId"" > 0 THEN 1 ELSE 0 END) AS ""AvailableTrackCount"",
|
SUM(CASE WHEN ""Tracks"".""TrackFileId"" > 0 THEN 1 ELSE 0 END) AS ""AvailableTrackCount"",
|
||||||
SUM(CASE WHEN ""Albums"".""Monitored"" = true OR ""Tracks"".""TrackFileId"" > 0 THEN 1 ELSE 0 END) AS ""TrackCount"",
|
SUM(CASE WHEN ""Albums"".""Monitored"" = {trueIndicator} OR ""Tracks"".""TrackFileId"" > 0 THEN 1 ELSE 0 END) AS ""TrackCount"",
|
||||||
SUM(CASE WHEN ""TrackFiles"".""Id"" IS NULL THEN 0 ELSE 1 END) AS ""TrackFileCount""")
|
SUM(CASE WHEN ""TrackFiles"".""Id"" IS NULL THEN 0 ELSE 1 END) AS ""TrackFileCount""")
|
||||||
.Join<Track, AlbumRelease>((t, r) => t.AlbumReleaseId == r.Id)
|
.Join<Track, AlbumRelease>((t, r) => t.AlbumReleaseId == r.Id)
|
||||||
.Join<AlbumRelease, Album>((r, a) => r.AlbumId == a.Id)
|
.Join<AlbumRelease, Album>((r, a) => r.AlbumId == a.Id)
|
||||||
|
|
|
@ -31,7 +31,16 @@ namespace NzbDrone.Core.Datastore.Migration
|
||||||
WHERE ""Artists"".""Path"" IS NULL)");
|
WHERE ""Artists"".""Path"" IS NULL)");
|
||||||
|
|
||||||
// Remove anything linked to unmonitored or unidentified releases. This should ensure uniqueness of track files.
|
// Remove anything linked to unmonitored or unidentified releases. This should ensure uniqueness of track files.
|
||||||
Execute.Sql(@"DELETE FROM ""TrackFiles""
|
IfDatabase("sqlite").Execute.Sql(@"DELETE FROM ""TrackFiles""
|
||||||
|
WHERE ""Id"" IN (
|
||||||
|
SELECT ""TrackFiles"".""Id"" FROM ""TrackFiles""
|
||||||
|
LEFT JOIN ""Tracks"" ON ""TrackFiles"".""Id"" = ""Tracks"".""TrackFileId""
|
||||||
|
LEFT JOIN ""AlbumReleases"" ON ""Tracks"".""AlbumReleaseId"" = ""AlbumReleases"".""Id""
|
||||||
|
WHERE ""AlbumReleases"".""Monitored"" = 0
|
||||||
|
OR ""AlbumReleases"".""Monitored"" IS NULL)");
|
||||||
|
|
||||||
|
// Remove anything linked to unmonitored or unidentified releases. This should ensure uniqueness of track files.
|
||||||
|
IfDatabase("postgres").Execute.Sql(@"DELETE FROM ""TrackFiles""
|
||||||
WHERE ""Id"" IN (
|
WHERE ""Id"" IN (
|
||||||
SELECT ""TrackFiles"".""Id"" FROM ""TrackFiles""
|
SELECT ""TrackFiles"".""Id"" FROM ""TrackFiles""
|
||||||
LEFT JOIN ""Tracks"" ON ""TrackFiles"".""Id"" = ""Tracks"".""TrackFileId""
|
LEFT JOIN ""Tracks"" ON ""TrackFiles"".""Id"" = ""Tracks"".""TrackFileId""
|
||||||
|
@ -40,8 +49,8 @@ namespace NzbDrone.Core.Datastore.Migration
|
||||||
OR ""AlbumReleases"".""Monitored"" IS NULL)");
|
OR ""AlbumReleases"".""Monitored"" IS NULL)");
|
||||||
|
|
||||||
// Populate the full paths
|
// Populate the full paths
|
||||||
Execute.Sql(@"UPDATE ""TrackFiles""
|
Execute.Sql($@"UPDATE ""TrackFiles""
|
||||||
SET ""Path"" = (SELECT ""Artists"".""Path"" || '" + System.IO.Path.DirectorySeparatorChar + @"' || ""TrackFiles"".""RelativePath""
|
SET ""Path"" = (SELECT ""Artists"".""Path"" || '{System.IO.Path.DirectorySeparatorChar}' || ""TrackFiles"".""RelativePath""
|
||||||
FROM ""Artists""
|
FROM ""Artists""
|
||||||
JOIN ""Albums"" ON ""Albums"".""ArtistMetadataId"" = ""Artists"".""ArtistMetadataId""
|
JOIN ""Albums"" ON ""Albums"".""ArtistMetadataId"" = ""Artists"".""ArtistMetadataId""
|
||||||
WHERE ""TrackFiles"".""AlbumId"" = ""Albums"".""Id"")");
|
WHERE ""TrackFiles"".""AlbumId"" = ""Albums"".""Id"")");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue