Database Migration downgrade
Closed this issue · 2 comments
Gaurav-Puri101187 commented
Hi Team,,
I wanted advice on how to downgrade the Database Migration.
I applied first migration(0.0.1) then i wanted to downgrade, so in startup.cs i set DatabaseMigrationVersion to 0.0.0 and my currentversion(in _migration) is 0.0.1
But as per my understanding below code won't downgrade or run down method of 0.0.1 migration
Can you please advice.
private void MigrateDown(IMongoDatabase db, DocumentVersion currentVersion, DocumentVersion toVersion)
{
var migrations = _migrationLocator
.GetMigrationsGtEq(DatabaseMigrationType, toVersion)
.OrderByDescending(m => m.Version)
.ToList();
for (var m = 0; m < migrations.Count; m++)
{
var migration = migrations[m];
if (migration.Version >= currentVersion)
{
break;
}
_logger.LogInformation("Database Migration Down: {0}:{1} ", migration.GetType().ToString(), migration.Version);
migration.Down(db);
_databaseVersionService.Remove(db, migration);
_logger.LogInformation("Database Migration Down finished successful: {0}:{1} ", migration.GetType().ToString(), migration.Version);
}
}
Gaurav-Puri101187 commented
It should have been the same way as DocumentMigrationRunner's MigrateDown method as an example the method should be
private void MigrateDown(IMongoDatabase db, DocumentVersion toVersion)
{
var migrations = _migrationLocator
.GetMigrationsGtEq(DatabaseMigrationType, toVersion)
.OrderByDescending(m => m.Version)
.ToList();
for (var m = 0; m < migrations.Count; m++)
{
var migration = migrations[m];
if (migration.Version == toVersion)
{
break;
}
_logger.LogInformation("Database Migration Down: {0}:{1} ", migration.GetType().ToString(), migration.Version);
migration.Down(db);
_databaseVersionService.Remove(db, migration);
_logger.LogInformation("Database Migration Down finished successful: {0}:{1} ", migration.GetType().ToString(), migration.Version);
}
}
I guess this is a bug but may be i am wrong here.
SRoddis commented
Hey @Gaurav-Puri101187 you are correct. This Bug came in with a PR.
I fixed the line to (migration.Version == toVersion)
.
Thank you for the bug report.
Cheers, Sean