Introduce projects_settings table and migrate existing project settings in projects
This was originally brought up in https://gitlab.com/gitlab-org/gitlab-ce/issues/37506#note_39571168 and again in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9646#note_42531251
I don't know if we have an issue yet, so I created this and we could schedule it.
Steps:
-
Introduce new project_settings
table: #35085 (closed) - !19761 (merged) -
Made sure new columns and up in project_settings
instead of inprojects
(when possible) -
Migrate a bunch of columns (see below)
Columns we might want to move:
- import_url
- import_status
- merge_requests_template
- merge_requests_rebase_enabled
- import_type
- import_source
- approvals_before_merge
- reset_approvals_on_push
- merge_requests_ff_only_enabled
- issues_template
- import_error
- ci_id
- shared_runners_enabled
- runners_token
- build_coverage_regex
- build_allow_git_fetch
- build_timeout
- public_builds
- only_allow_merge_if_pipeline_succeeds
- has_external_issue_tracker
- repository_read_only
- request_access_enabled
- has_external_wiki
- ci_config_path
- lfs_enabled
- only_allow_merge_if_all_discussions_are_resolved
- repository_size_limit
- printing_merge_request_link_enabled
- auto_cancel_pending_pipelines
- service_desk_enabled
- import_jid
- disable_overriding_approvers_per_merge_request
- resolve_outdated_diff_discussions
And we might want to separate the import related data as well? Also maybe mirror related stuffs? Some data might also involve some query, which would then need extra inner join if they're in separate table. We need to figure out which settings we really want to be separated, and which ones we don't want.
Edited by Toon Claes