Skip to content

Introduce projects_settings table and migrate existing project settings in projects

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

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 in projects (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 🤖 GitLab Bot 🤖