Fixed: Correctly handle Migration when PG Host has ".db"

This commit is contained in:
Qstick 2023-12-02 19:05:12 -06:00 committed by Mark McDowall
parent 4bb9dc78a7
commit 97ee24507f
2 changed files with 12 additions and 12 deletions

View File

@ -68,7 +68,7 @@ namespace NzbDrone.Core.Datastore
case MigrationType.Main: case MigrationType.Main:
{ {
connectionInfo = _connectionStringFactory.MainDbConnection; connectionInfo = _connectionStringFactory.MainDbConnection;
CreateMain(connectionInfo.ConnectionString, migrationContext); CreateMain(connectionInfo.ConnectionString, migrationContext, connectionInfo.DatabaseType);
break; break;
} }
@ -76,7 +76,7 @@ namespace NzbDrone.Core.Datastore
case MigrationType.Log: case MigrationType.Log:
{ {
connectionInfo = _connectionStringFactory.LogDbConnection; connectionInfo = _connectionStringFactory.LogDbConnection;
CreateLog(connectionInfo.ConnectionString, migrationContext); CreateLog(connectionInfo.ConnectionString, migrationContext, connectionInfo.DatabaseType);
break; break;
} }
@ -108,12 +108,12 @@ namespace NzbDrone.Core.Datastore
return db; return db;
} }
private void CreateMain(string connectionString, MigrationContext migrationContext) private void CreateMain(string connectionString, MigrationContext migrationContext, DatabaseType databaseType)
{ {
try try
{ {
_restoreDatabaseService.Restore(); _restoreDatabaseService.Restore();
_migrationController.Migrate(connectionString, migrationContext); _migrationController.Migrate(connectionString, migrationContext, databaseType);
} }
catch (SQLiteException e) catch (SQLiteException e)
{ {
@ -140,7 +140,7 @@ namespace NzbDrone.Core.Datastore
try try
{ {
_migrationController.Migrate(connectionString, migrationContext); _migrationController.Migrate(connectionString, migrationContext, databaseType);
return; return;
} }
catch (Exception ex) catch (Exception ex)
@ -165,11 +165,11 @@ namespace NzbDrone.Core.Datastore
} }
} }
private void CreateLog(string connectionString, MigrationContext migrationContext) private void CreateLog(string connectionString, MigrationContext migrationContext, DatabaseType databaseType)
{ {
try try
{ {
_migrationController.Migrate(connectionString, migrationContext); _migrationController.Migrate(connectionString, migrationContext, databaseType);
} }
catch (SQLiteException e) catch (SQLiteException e)
{ {
@ -189,7 +189,7 @@ namespace NzbDrone.Core.Datastore
Logger.Error("Unable to recreate logging database automatically. It will need to be removed manually."); 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) catch (Exception e)
{ {

View File

@ -1,4 +1,4 @@
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Reflection; using System.Reflection;
using FluentMigrator.Runner; using FluentMigrator.Runner;
@ -14,7 +14,7 @@ namespace NzbDrone.Core.Datastore.Migration.Framework
{ {
public interface IMigrationController public interface IMigrationController
{ {
void Migrate(string connectionString, MigrationContext migrationContext); void Migrate(string connectionString, MigrationContext migrationContext, DatabaseType databaseType);
} }
public class MigrationController : IMigrationController public class MigrationController : IMigrationController
@ -29,7 +29,7 @@ namespace NzbDrone.Core.Datastore.Migration.Framework
_migrationLoggerProvider = migrationLoggerProvider; _migrationLoggerProvider = migrationLoggerProvider;
} }
public void Migrate(string connectionString, MigrationContext migrationContext) public void Migrate(string connectionString, MigrationContext migrationContext, DatabaseType databaseType)
{ {
var sw = Stopwatch.StartNew(); var sw = Stopwatch.StartNew();
@ -37,7 +37,7 @@ namespace NzbDrone.Core.Datastore.Migration.Framework
ServiceProvider serviceProvider; ServiceProvider serviceProvider;
var db = connectionString.Contains(".db") ? "sqlite" : "postgres"; var db = databaseType == DatabaseType.SQLite ? "sqlite" : "postgres";
serviceProvider = new ServiceCollection() serviceProvider = new ServiceCollection()
.AddLogging(b => b.AddNLog()) .AddLogging(b => b.AddNLog())