From 94d650127b4dfde5cce097309ef96fed029549d5 Mon Sep 17 00:00:00 2001 From: Stephan Steiner Date: Mon, 5 Aug 2024 19:32:11 +0200 Subject: [PATCH 1/2] allow initialization without a MongoConnector when ConnectionString and Database have been provided in IMongoMigrationSettings --- .../Migrations/Database/StartUpDatabaseMigrationRunner.cs | 2 +- .../Migrations/Document/StartUpDocumentMigrationRunner.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Mongo.Migration/Migrations/Database/StartUpDatabaseMigrationRunner.cs b/Mongo.Migration/Migrations/Database/StartUpDatabaseMigrationRunner.cs index a5a693b..e50b82e 100644 --- a/Mongo.Migration/Migrations/Database/StartUpDatabaseMigrationRunner.cs +++ b/Mongo.Migration/Migrations/Database/StartUpDatabaseMigrationRunner.cs @@ -27,7 +27,7 @@ public StartUpDatabaseMigrationRunner( collectionLocator, migrationRunner) { - if (settings.ConnectionString == null && settings.Database == null || settings.ClientSettings == null) + if ((settings.ConnectionString == null || settings.ClientSettings == null) && settings.Database == null) { throw new MongoMigrationNoMongoClientException(); } diff --git a/Mongo.Migration/Migrations/Document/StartUpDocumentMigrationRunner.cs b/Mongo.Migration/Migrations/Document/StartUpDocumentMigrationRunner.cs index 7dbf13e..9e67194 100644 --- a/Mongo.Migration/Migrations/Document/StartUpDocumentMigrationRunner.cs +++ b/Mongo.Migration/Migrations/Document/StartUpDocumentMigrationRunner.cs @@ -34,7 +34,7 @@ public StartUpDocumentMigrationRunner( documentVersionService, migrationRunner) { - if (settings.ConnectionString == null && settings.Database == null || settings.ClientSettings == null) + if ((settings.ConnectionString == null || settings.ClientSettings == null) && settings.Database == null) { throw new MongoMigrationNoMongoClientException(); } From 4a4c297e7e92da46a4e5a6c2afa8a16cb22aedfa Mon Sep 17 00:00:00 2001 From: Stephan Steiner Date: Mon, 5 Aug 2024 19:33:09 +0200 Subject: [PATCH 2/2] fixed downward migrations - skip downward migrations of versions that are > current databse version --- .../Migrations/Database/DatabaseMigrationRunner.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Mongo.Migration/Migrations/Database/DatabaseMigrationRunner.cs b/Mongo.Migration/Migrations/Database/DatabaseMigrationRunner.cs index c446bfd..378accf 100644 --- a/Mongo.Migration/Migrations/Database/DatabaseMigrationRunner.cs +++ b/Mongo.Migration/Migrations/Database/DatabaseMigrationRunner.cs @@ -97,6 +97,11 @@ private void MigrateDown(IMongoDatabase db, DocumentVersion currentVersion, Docu { break; } + else if (migration.Version > currentVersion) // a migration that was never applied + { + this._logger.LogInformation("Skipping Migration Down: {0}:{1} because current version is {2} ", migration.GetType().ToString(), migration.Version, currentVersion); + continue; + } this._logger.LogInformation("Database Migration Down: {0}:{1} ", migration.GetType().ToString(), migration.Version);