Ensure structure:load runs in single transaction
What does this MR do?
Set an additional flag on Rails DatabaseTasks
so that the call to psql
loads the structure.sql
file in a single transaction.
We can have situations where the database is being bootstrapped (schema load) and additional processes start in parallel. Those would start examining the schema and for example start to create partitions. However, without a transaction scope for the schema load, they might end up doing that when only a portion of the schema has been loaded.
In order to avoid that situation, we'd like to wrap the schema load into a transaction here.
Related to #241267 (closed)
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry -
Documentation (if required) -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team