Disallow subtransactions in with_lock_retries migration helper
What does this MR do?
This is step 2 from #339115 (comment 668767523).
The intent here is to disallow using with_lock_retries
in a context where we already have an open transaction going (in order to disallow subtransactions).
- Retain behavior for existing migrations or change existing migrations when possible
- Change V2 helper to raise if used within open transaction (so the breaking change is only in effect for newly added migrations inheriting from
Gitlab::Database::Migration[1.0]
).
Follow-up:
- Fix other migration helpers using
with_lock_retries
inside open transaction - those will raise an error when used with V2 helpers andGitlab::Database::Migration[1.0]
, example:create_table_with_constraints
(fix in !69304 (merged))
Does this MR meet the acceptance criteria?
Conformity
-
I have included changelog trailers, or none are needed. (Does this MR need a changelog?) -
I have added/updated documentation, or it's not needed. (Is documentation required?) -
I have properly separated EE content from FOSS, or this MR is FOSS only. (Where should EE code go?) -
I have added information for database reviewers in the MR description, or it's not needed. (Does this MR have database related changes?) -
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides. -
This change is backwards compatible across updates, or this does not apply.
Edited by Andreas Brandl