Browse Source

Add check to prevent downgrade from future EFCore refactor (#13103)

JPVenson 4 tháng trước cách đây
mục cha
commit
722cdcce5e

+ 8 - 0
Jellyfin.Server/Migrations/MigrationRunner.cs

@@ -51,6 +51,8 @@ namespace Jellyfin.Server.Migrations
             typeof(Routines.RemoveDuplicatePlaylistChildren)
             typeof(Routines.RemoveDuplicatePlaylistChildren)
         };
         };
 
 
+        private static readonly Guid _downgradeCheckMigration = Guid.Parse("36445464-849f-429f-9ad0-bb130efa0664");
+
         /// <summary>
         /// <summary>
         /// Run all needed migrations.
         /// Run all needed migrations.
         /// </summary>
         /// </summary>
@@ -88,6 +90,12 @@ namespace Jellyfin.Server.Migrations
                  ? (MigrationOptions)xmlSerializer.DeserializeFromFile(typeof(MigrationOptions), migrationConfigPath)!
                  ? (MigrationOptions)xmlSerializer.DeserializeFromFile(typeof(MigrationOptions), migrationConfigPath)!
                  : new MigrationOptions();
                  : new MigrationOptions();
 
 
+            // 10.10 specific EFCore migration check.
+            if (migrationOptions.Applied.Any(f => f.Id.Equals(_downgradeCheckMigration)))
+            {
+                throw new InvalidOperationException("You cannot downgrade your jellyfin install from the library.db migration.");
+            }
+
             // We have to deserialize it manually since the configuration manager may overwrite it
             // We have to deserialize it manually since the configuration manager may overwrite it
             var serverConfig = File.Exists(appPaths.SystemConfigurationFilePath)
             var serverConfig = File.Exists(appPaths.SystemConfigurationFilePath)
                 ? (ServerConfiguration)xmlSerializer.DeserializeFromFile(typeof(ServerConfiguration), appPaths.SystemConfigurationFilePath)!
                 ? (ServerConfiguration)xmlSerializer.DeserializeFromFile(typeof(ServerConfiguration), appPaths.SystemConfigurationFilePath)!