Defer saving project services to the database if there are no user changes
What does this MR do?
It defers saving project services to the database as long as it is possible. It creates a project service when creating a project only if this project service has an active template. After that project services are saved on the first edit.
Are there points in the code the reviewer needs to double check?
- tests that used
build_missing_servicesbefore the change
- number of queries executed
Why was this MR needed?
Motivation in #22281 (closed)
Does this MR meet the acceptance criteria?
- CHANGELOG entry added
- Added for this feature/bug
- All builds are passing
- Conform by the merge request performance guides
- Conform by the style guides
Branch has no merge conflicts with
master(if it does - rebase it please)
- Squashed related commits together
What are the relevant issue numbers?
Fixes #22281 (closed)