[rc2] Revert migrator behavior to use a transaction for each migration (when possible) #36662
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #35096
Description
In EF9 we changed migration execution to use a single transaction across all migrations to rollback everything if there are any errors. However, many operations fail when executed in the same transaction. Also, a long-running transaction is more likely to fail due to transient errors.
So, this PR reverts the behavior to pre-EF9.
Customer impact
Certain operations now fail when several migrations are applied at once. A workaround is to apply one migration at a time.
How found
This was reported by several customers
Regression
Yes, from EF 8.0.x. Introduced in 972a50a
Testing
Tested manually
Risk
Low. Targeted change that reverts to previous behavior.