@@ -67,19 +67,18 @@ public async Task<MigrateResult> MigrateAsync(SemVersion? version = null, Cancel
6767 }
6868
6969 var mongoClient = _database . Client ;
70-
71- using var session = await mongoClient . StartSessionAsync ( cancellationToken : cancellationToken ) ;
72-
73- session . StartTransaction ( ) ;
7470
75- try
71+ foreach ( var migration in migrations )
7672 {
77- foreach ( var migration in migrations )
73+ using var session = await mongoClient . StartSessionAsync ( cancellationToken : cancellationToken ) ;
74+ session . StartTransaction ( ) ;
75+
76+ try
7877 {
7978 if ( runUp )
8079 {
8180 await migration . Up ( _database , session , cancellationToken ) ;
82-
81+
8382 await _collection . InsertOneAsync ( session , new MigrationDocument
8483 {
8584 Id = ObjectId . GenerateNewId ( ) ,
@@ -92,19 +91,19 @@ public async Task<MigrateResult> MigrateAsync(SemVersion? version = null, Cancel
9291 else
9392 {
9493 await migration . Down ( _database , session , cancellationToken ) ;
95-
96- await _collection . DeleteOneAsync ( session ,
97- x => x . Version == migration . Version ,
94+
95+ await _collection . DeleteOneAsync ( session ,
96+ x => x . Version == migration . Version ,
9897 cancellationToken : cancellationToken ) ;
9998 }
99+
100+ await session . CommitTransactionAsync ( cancellationToken ) ;
101+ }
102+ catch ( Exception ex )
103+ {
104+ await session . AbortTransactionAsync ( cancellationToken ) ;
105+ return MigrateResult . Failed ( migration . Version , ex ) ;
100106 }
101-
102- await session . CommitTransactionAsync ( cancellationToken ) ;
103- }
104- catch ( Exception ex )
105- {
106- await session . AbortTransactionAsync ( cancellationToken ) ;
107- return MigrateResult . Failed ( migrations [ ^ 1 ] . Version , ex ) ;
108107 }
109108
110109 return MigrateResult . Succeeded ( migrations [ ^ 1 ] . Version , migrations ) ;
0 commit comments