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

(cherry picked from commit 97ee24507f4306e3b62c3d00cd3ade6a09d1b957)

Closes #3116
pull/3118/merge
Qstick 6 months ago committed by Bogdan
parent 5ed13b942b
commit 060b133f6d

@ -67,7 +67,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;
} }
@ -75,7 +75,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;
} }
@ -83,7 +83,7 @@ namespace NzbDrone.Core.Datastore
case MigrationType.Cache: case MigrationType.Cache:
{ {
connectionInfo = _connectionStringFactory.CacheDbConnection; connectionInfo = _connectionStringFactory.CacheDbConnection;
CreateLog(connectionInfo.ConnectionString, migrationContext); CreateLog(connectionInfo.ConnectionString, migrationContext, connectionInfo.DatabaseType);
break; break;
} }
@ -115,12 +115,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)
{ {
@ -147,7 +147,7 @@ namespace NzbDrone.Core.Datastore
try try
{ {
_migrationController.Migrate(connectionString, migrationContext); _migrationController.Migrate(connectionString, migrationContext, databaseType);
return; return;
} }
catch (Exception ex) catch (Exception ex)
@ -172,11 +172,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)
{ {
@ -196,7 +196,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)
{ {

@ -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())

Loading…
Cancel
Save