diff --git a/PlexRequests.Core.Migration/MigrationRunner.cs b/PlexRequests.Core.Migration/MigrationRunner.cs index d53ab8d3d..dcb5514fe 100644 --- a/PlexRequests.Core.Migration/MigrationRunner.cs +++ b/PlexRequests.Core.Migration/MigrationRunner.cs @@ -4,6 +4,7 @@ using System.Data.Common; using System.Linq; using System.Reflection; using Ninject; +using NLog; using PlexRequests.Store; namespace PlexRequests.Core.Migration @@ -18,6 +19,7 @@ namespace PlexRequests.Core.Migration private IKernel Kernel { get; } private ISqliteConfiguration Db { get; } + private static Logger _log = LogManager.GetCurrentClassLogger(); public void MigrateToLatest() { @@ -25,25 +27,34 @@ namespace PlexRequests.Core.Migration var versions = GetMigrations(); var dbVersion = con.GetVersionInfo().OrderByDescending(x => x.Version).FirstOrDefault() ?? - new TableCreation.VersionInfo { Version = 0 }; + new TableCreation.VersionInfo {Version = 0}; foreach (var v in versions) { #if !DEBUG if (v.Value.Version > dbVersion.Version) { #endif - // Assuming only one constructor - var ctor = v.Key.GetConstructors().FirstOrDefault(); - var dependencies = ctor.GetParameters().Select(param => Kernel.Get(param.ParameterType)).ToList(); - - var method = v.Key.GetMethod("Start"); - if (method != null) + try { - var classInstance = Activator.CreateInstance(v.Key, dependencies.Any() ? dependencies.ToArray() : null); - var parametersArray = new object[] { Db.DbConnection() }; + // Assuming only one constructor + var ctor = v.Key.GetConstructors().FirstOrDefault(); + var dependencies = ctor.GetParameters().Select(param => Kernel.Get(param.ParameterType)).ToList(); + + var method = v.Key.GetMethod("Start"); + if (method != null) + { + var classInstance = Activator.CreateInstance(v.Key, dependencies.Any() ? dependencies.ToArray() : null); + var parametersArray = new object[] { Db.DbConnection() }; - method.Invoke(classInstance, parametersArray); + method.Invoke(classInstance, parametersArray); + } } + catch (Exception e) + { + _log.Fatal("Error when migrating"); + _log.Fatal(e); + } + #if !DEBUG } #endif diff --git a/PlexRequests.Core.Migration/Migrations/Version1100.cs b/PlexRequests.Core.Migration/Migrations/Version1100.cs index bfe819fd3..04d569128 100644 --- a/PlexRequests.Core.Migration/Migrations/Version1100.cs +++ b/PlexRequests.Core.Migration/Migrations/Version1100.cs @@ -246,6 +246,10 @@ namespace PlexRequests.Core.Migration.Migrations var requestedModels = allRequests.ToList(); foreach (var req in requestedModels) { + if (string.IsNullOrEmpty(req.PosterPath)) + { + continue; + } if (req.PosterPath.Contains("https://image.tmdb.org/t/p/w150/")) { var newImg = req.PosterPath.Replace("https://image.tmdb.org/t/p/w150/", string.Empty);