From fa62f3f66a4549455ab71abf988e89782753fbf7 Mon Sep 17 00:00:00 2001 From: Qstick Date: Sat, 2 Dec 2023 19:05:12 -0600 Subject: [PATCH] Fixed: Correctly handle Migration when PG Host has ".db" (cherry picked from commit 97ee24507f4306e3b62c3d00cd3ade6a09d1b957) Closes #9478 --- src/NzbDrone.Core/Datastore/DbFactory.cs | 16 ++++++++-------- .../Migration/Framework/MigrationController.cs | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/NzbDrone.Core/Datastore/DbFactory.cs b/src/NzbDrone.Core/Datastore/DbFactory.cs index 608b8fd22..5ab7c6e38 100644 --- a/src/NzbDrone.Core/Datastore/DbFactory.cs +++ b/src/NzbDrone.Core/Datastore/DbFactory.cs @@ -68,7 +68,7 @@ public IDatabase Create(MigrationContext migrationContext) case MigrationType.Main: { connectionInfo = _connectionStringFactory.MainDbConnection; - CreateMain(connectionInfo.ConnectionString, migrationContext); + CreateMain(connectionInfo.ConnectionString, migrationContext, connectionInfo.DatabaseType); break; } @@ -76,7 +76,7 @@ public IDatabase Create(MigrationContext migrationContext) case MigrationType.Log: { connectionInfo = _connectionStringFactory.LogDbConnection; - CreateLog(connectionInfo.ConnectionString, migrationContext); + CreateLog(connectionInfo.ConnectionString, migrationContext, connectionInfo.DatabaseType); break; } @@ -108,12 +108,12 @@ public IDatabase Create(MigrationContext migrationContext) return db; } - private void CreateMain(string connectionString, MigrationContext migrationContext) + private void CreateMain(string connectionString, MigrationContext migrationContext, DatabaseType databaseType) { try { _restoreDatabaseService.Restore(); - _migrationController.Migrate(connectionString, migrationContext); + _migrationController.Migrate(connectionString, migrationContext, databaseType); } catch (SQLiteException e) { @@ -140,7 +140,7 @@ private void CreateMain(string connectionString, MigrationContext migrationConte try { - _migrationController.Migrate(connectionString, migrationContext); + _migrationController.Migrate(connectionString, migrationContext, databaseType); return; } catch (Exception ex) @@ -165,11 +165,11 @@ private void CreateMain(string connectionString, MigrationContext migrationConte } } - private void CreateLog(string connectionString, MigrationContext migrationContext) + private void CreateLog(string connectionString, MigrationContext migrationContext, DatabaseType databaseType) { try { - _migrationController.Migrate(connectionString, migrationContext); + _migrationController.Migrate(connectionString, migrationContext, databaseType); } catch (SQLiteException e) { @@ -189,7 +189,7 @@ private void CreateLog(string connectionString, MigrationContext migrationContex Logger.Error("Unable to recreate logging database automatically. It will need to be removed manually."); } - _migrationController.Migrate(connectionString, migrationContext); + _migrationController.Migrate(connectionString, migrationContext, databaseType); } catch (Exception e) { diff --git a/src/NzbDrone.Core/Datastore/Migration/Framework/MigrationController.cs b/src/NzbDrone.Core/Datastore/Migration/Framework/MigrationController.cs index 1249dfd8b..dea8365c1 100644 --- a/src/NzbDrone.Core/Datastore/Migration/Framework/MigrationController.cs +++ b/src/NzbDrone.Core/Datastore/Migration/Framework/MigrationController.cs @@ -14,7 +14,7 @@ namespace NzbDrone.Core.Datastore.Migration.Framework { public interface IMigrationController { - void Migrate(string connectionString, MigrationContext migrationContext); + void Migrate(string connectionString, MigrationContext migrationContext, DatabaseType databaseType); } public class MigrationController : IMigrationController @@ -29,7 +29,7 @@ public MigrationController(Logger logger, _migrationLoggerProvider = migrationLoggerProvider; } - public void Migrate(string connectionString, MigrationContext migrationContext) + public void Migrate(string connectionString, MigrationContext migrationContext, DatabaseType databaseType) { var sw = Stopwatch.StartNew(); @@ -37,7 +37,7 @@ public void Migrate(string connectionString, MigrationContext migrationContext) ServiceProvider serviceProvider; - var db = connectionString.Contains(".db") ? "sqlite" : "postgres"; + var db = databaseType == DatabaseType.SQLite ? "sqlite" : "postgres"; serviceProvider = new ServiceCollection() .AddLogging(b => b.AddNLog())