Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'db/migrate')
-rw-r--r--db/migrate/20210305031822_create_dast_site_profile_variables.rb2
-rw-r--r--db/migrate/20210317035357_create_dast_profiles_pipelines.rb2
-rw-r--r--db/migrate/20210412111213_create_security_orchestration_policy_rule_schedule.rb2
-rw-r--r--db/migrate/20210423054022_create_dast_site_profiles_pipelines.rb2
-rw-r--r--db/migrate/20210604032738_create_dast_site_profiles_builds.rb2
-rw-r--r--db/migrate/20210604051330_create_dast_scanner_profiles_builds.rb2
-rw-r--r--db/migrate/20210713123345_create_dast_profile_schedule.rb2
-rw-r--r--db/migrate/20220613112029_add_namespace_id_to_protected_branches.rb9
-rw-r--r--db/migrate/20220613112030_add_namespace_id_indexes_foreign_key_to_protected_branches.rb19
-rw-r--r--db/migrate/20220613112031_add_group_or_project_constraint_in_protected_branches.rb18
-rw-r--r--db/migrate/20220613112032_change_project_id_null_in_protected_branches.rb13
-rw-r--r--db/migrate/20220721065723_add_issue_branch_template_to_project_settings.rb17
-rw-r--r--db/migrate/20220919062640_add_mirror_branch_regex_to_remote_mirrors.rb15
-rw-r--r--db/migrate/20220920135632_add_jira_connect_proxy_url_setting.rb10
-rw-r--r--db/migrate/20220920135717_add_textlimit_to_jira_connect_proxy_url_setting.rb13
-rw-r--r--db/migrate/20220926023734_add_mirror_branch_regex_to_project_settings.rb12
-rw-r--r--db/migrate/20221003151747_create_audit_events_streaming_event_type_filters.rb18
-rw-r--r--db/migrate/20221010103207_add_product_analytics_enabled_to_application_settings.rb7
-rw-r--r--db/migrate/20221010184839_add_new_amount_used_to_ci_project_monthly_usages.rb24
-rw-r--r--db/migrate/20221010201815_add_purl_type_to_sbom_components.rb7
-rw-r--r--db/migrate/20221010202339_remove_unique_index_on_sbom_components_type_and_name.rb15
-rw-r--r--db/migrate/20221010202408_add_unique_index_on_sbom_components_type_name_and_purl_type.rb15
-rw-r--r--db/migrate/20221013103738_add_disable_admin_oauth_scopes.rb7
-rw-r--r--db/migrate/20221015000511_add_email_confirmation_setting_to_application_settings.rb7
-rw-r--r--db/migrate/20221017084208_rename_ci_pipeline_metadata_title.rb13
-rw-r--r--db/migrate/20221018050323_add_objective_and_keyresult_to_work_item_types.rb56
-rw-r--r--db/migrate/20221018092552_add_file_name_index_to_packages_rpm_repository_files.rb18
-rw-r--r--db/migrate/20221018124029_add_consume_after_to_ghost_user_migrations.rb7
-rw-r--r--db/migrate/20221018124035_add_consume_after_index_to_ghost_user_migrations.rb15
-rw-r--r--db/migrate/20221018202524_create_dependency_proxy_blob_states.rb49
-rw-r--r--db/migrate/20221020124018_add_delete_started_at_to_container_repositories.rb11
-rw-r--r--db/migrate/20221021213216_create_namespace_commit_emails.rb14
-rw-r--r--db/migrate/20221022213505_add_namespace_commit_emails_namespace_fk.rb15
-rw-r--r--db/migrate/20221022213521_add_namespace_commit_emails_email_fk.rb15
-rw-r--r--db/migrate/20221025043930_change_default_value_on_password_last_changed_at_to_user_details.rb13
-rw-r--r--db/migrate/20221025105205_add_status_and_id_index_to_container_repositories.rb15
-rw-r--r--db/migrate/20221025145452_change_vulnerability_feedback_unique_idx.rb25
-rw-r--r--db/migrate/20221025150202_add_index_for_finding_uuid_and_feedback_type_on_feedback.rb15
-rw-r--r--db/migrate/20221027124848_add_text_limit_to_project_settings_mirror_branch_regex.rb13
-rw-r--r--db/migrate/20221028015347_add_commit_committer_name_check_to_push_rules.rb7
-rw-r--r--db/migrate/20221028152422_add_finding_data_column_to_security_findings.rb13
-rw-r--r--db/migrate/20221031102916_add_users_foreign_key_to_projects.rb15
-rw-r--r--db/migrate/20221101032521_add_default_preferred_language_to_application_settings.rb10
-rw-r--r--db/migrate/20221101032600_add_text_limit_to_default_preferred_language_on_application_settings.rb15
-rw-r--r--db/migrate/20221101195903_change_email_confirmation_setting_default.rb7
-rw-r--r--db/migrate/20221101201031_set_email_confirmation_setting_from_send_user_confirmation_email_setting.rb22
-rw-r--r--db/migrate/20221102202130_extend_x509_subject_limit.rb11
-rw-r--r--db/migrate/20221102225800_add_max_seats_used_changed_at_index_to_gitlab_subscriptions.rb15
-rw-r--r--db/migrate/20221103131409_add_partial_index_on_primary_key_of_security_scans.rb15
-rw-r--r--db/migrate/20221104061320_add_disable_download_button_into_application_settings.rb8
-rw-r--r--db/migrate/20221104094042_remove_users_foreign_key_to_projects.rb15
-rw-r--r--db/migrate/20221107115247_change_scim_identity_group_id_remove_null.rb10
-rw-r--r--db/migrate/20221107115413_change_scim_oauth_access_token_group_id_remove_null.rb10
-rw-r--r--db/migrate/20221107183222_create_project_wiki_repositories.rb11
-rw-r--r--db/migrate/20221107184542_add_new_amount_used_to_ci_namespace_monthly_usages.rb24
-rw-r--r--db/migrate/20221108015813_add_telesign_to_application_settings.rb11
-rw-r--r--db/migrate/20221108185442_add_project_wiki_repository_id_to_project_wiki_repository_states.rb35
-rw-r--r--db/migrate/20221110105857_add_index_for_in_product_marketing_email_metrics.rb15
-rw-r--r--db/migrate/20221110150942_add_project_id_lower_name_index_remove_old_index.rb26
59 files changed, 822 insertions, 7 deletions
diff --git a/db/migrate/20210305031822_create_dast_site_profile_variables.rb b/db/migrate/20210305031822_create_dast_site_profile_variables.rb
index f55755aa731..4b8fc982d86 100644
--- a/db/migrate/20210305031822_create_dast_site_profile_variables.rb
+++ b/db/migrate/20210305031822_create_dast_site_profile_variables.rb
@@ -13,7 +13,7 @@ class CreateDastSiteProfileVariables < ActiveRecord::Migration[6.0]
encrypted_value_constraint_name = check_constraint_name(:dast_site_profile_secret_variables, 'encrypted_value', 'max_length')
encrypted_value_iv_constraint_name = check_constraint_name(:dast_site_profile_secret_variables, 'encrypted_value_iv', 'max_length')
- create_table_with_constraints :dast_site_profile_secret_variables, comment: table_comment.to_json do |t|
+ create_table_with_constraints :dast_site_profile_secret_variables, comment: Gitlab::Json.dump(table_comment) do |t|
t.references :dast_site_profile, null: false, foreign_key: { on_delete: :cascade }, index: false
t.timestamps_with_timezone
diff --git a/db/migrate/20210317035357_create_dast_profiles_pipelines.rb b/db/migrate/20210317035357_create_dast_profiles_pipelines.rb
index f7a29958f12..f84e1237643 100644
--- a/db/migrate/20210317035357_create_dast_profiles_pipelines.rb
+++ b/db/migrate/20210317035357_create_dast_profiles_pipelines.rb
@@ -6,7 +6,7 @@ class CreateDastProfilesPipelines < ActiveRecord::Migration[6.0]
def up
table_comment = { owner: 'group::dynamic analysis', description: 'Join table between DAST Profiles and CI Pipelines' }
- create_table :dast_profiles_pipelines, primary_key: [:dast_profile_id, :ci_pipeline_id], comment: table_comment.to_json do |t|
+ create_table :dast_profiles_pipelines, primary_key: [:dast_profile_id, :ci_pipeline_id], comment: Gitlab::Json.dump(table_comment) do |t|
t.bigint :dast_profile_id, null: false
t.bigint :ci_pipeline_id, null: false
diff --git a/db/migrate/20210412111213_create_security_orchestration_policy_rule_schedule.rb b/db/migrate/20210412111213_create_security_orchestration_policy_rule_schedule.rb
index c7035400cba..365fa36f11b 100644
--- a/db/migrate/20210412111213_create_security_orchestration_policy_rule_schedule.rb
+++ b/db/migrate/20210412111213_create_security_orchestration_policy_rule_schedule.rb
@@ -11,7 +11,7 @@ class CreateSecurityOrchestrationPolicyRuleSchedule < ActiveRecord::Migration[6.
def up
table_comment = { owner: 'group::container security', description: 'Schedules used to store relationship between project and security policy repository' }
- create_table_with_constraints :security_orchestration_policy_rule_schedules, comment: table_comment.to_json do |t|
+ create_table_with_constraints :security_orchestration_policy_rule_schedules, comment: Gitlab::Json.dump(table_comment) do |t|
t.timestamps_with_timezone
t.datetime_with_timezone :next_run_at, null: true
diff --git a/db/migrate/20210423054022_create_dast_site_profiles_pipelines.rb b/db/migrate/20210423054022_create_dast_site_profiles_pipelines.rb
index bbdb4f02ab4..80b97ff5afe 100644
--- a/db/migrate/20210423054022_create_dast_site_profiles_pipelines.rb
+++ b/db/migrate/20210423054022_create_dast_site_profiles_pipelines.rb
@@ -4,7 +4,7 @@ class CreateDastSiteProfilesPipelines < ActiveRecord::Migration[6.0]
def up
table_comment = { owner: 'group::dynamic analysis', description: 'Join table between DAST Site Profiles and CI Pipelines' }
- create_table :dast_site_profiles_pipelines, primary_key: [:dast_site_profile_id, :ci_pipeline_id], comment: table_comment.to_json do |t|
+ create_table :dast_site_profiles_pipelines, primary_key: [:dast_site_profile_id, :ci_pipeline_id], comment: Gitlab::Json.dump(table_comment) do |t|
t.bigint :dast_site_profile_id, null: false
t.bigint :ci_pipeline_id, null: false
diff --git a/db/migrate/20210604032738_create_dast_site_profiles_builds.rb b/db/migrate/20210604032738_create_dast_site_profiles_builds.rb
index 2e9eb2c7cb7..6e653b36787 100644
--- a/db/migrate/20210604032738_create_dast_site_profiles_builds.rb
+++ b/db/migrate/20210604032738_create_dast_site_profiles_builds.rb
@@ -4,7 +4,7 @@ class CreateDastSiteProfilesBuilds < ActiveRecord::Migration[6.1]
def up
table_comment = { owner: 'group::dynamic analysis', description: 'Join table between DAST Site Profiles and CI Builds' }
- create_table :dast_site_profiles_builds, primary_key: [:dast_site_profile_id, :ci_build_id], comment: table_comment.to_json do |t|
+ create_table :dast_site_profiles_builds, primary_key: [:dast_site_profile_id, :ci_build_id], comment: Gitlab::Json.dump(table_comment) do |t|
t.bigint :dast_site_profile_id, null: false
t.bigint :ci_build_id, null: false
diff --git a/db/migrate/20210604051330_create_dast_scanner_profiles_builds.rb b/db/migrate/20210604051330_create_dast_scanner_profiles_builds.rb
index f8a5f735f0d..0fe3ada4c0d 100644
--- a/db/migrate/20210604051330_create_dast_scanner_profiles_builds.rb
+++ b/db/migrate/20210604051330_create_dast_scanner_profiles_builds.rb
@@ -4,7 +4,7 @@ class CreateDastScannerProfilesBuilds < ActiveRecord::Migration[6.1]
def up
table_comment = { owner: 'group::dynamic analysis', description: 'Join table between DAST Scanner Profiles and CI Builds' }
- create_table :dast_scanner_profiles_builds, primary_key: [:dast_scanner_profile_id, :ci_build_id], comment: table_comment.to_json do |t|
+ create_table :dast_scanner_profiles_builds, primary_key: [:dast_scanner_profile_id, :ci_build_id], comment: Gitlab::Json.dump(table_comment) do |t|
t.bigint :dast_scanner_profile_id, null: false
t.bigint :ci_build_id, null: false
diff --git a/db/migrate/20210713123345_create_dast_profile_schedule.rb b/db/migrate/20210713123345_create_dast_profile_schedule.rb
index 951aab63579..ea660de572a 100644
--- a/db/migrate/20210713123345_create_dast_profile_schedule.rb
+++ b/db/migrate/20210713123345_create_dast_profile_schedule.rb
@@ -10,7 +10,7 @@ class CreateDastProfileSchedule < ActiveRecord::Migration[6.1]
owner: 'group::dynamic analysis', description: 'Scheduling for scans using DAST Profiles'
}
- create_table_with_constraints :dast_profile_schedules, comment: table_comment.to_json do |t|
+ create_table_with_constraints :dast_profile_schedules, comment: Gitlab::Json.dump(table_comment) do |t|
t.bigint :project_id, null: false
t.bigint :dast_profile_id, null: false
t.bigint :user_id
diff --git a/db/migrate/20220613112029_add_namespace_id_to_protected_branches.rb b/db/migrate/20220613112029_add_namespace_id_to_protected_branches.rb
new file mode 100644
index 00000000000..1620a23d564
--- /dev/null
+++ b/db/migrate/20220613112029_add_namespace_id_to_protected_branches.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class AddNamespaceIdToProtectedBranches < Gitlab::Database::Migration[2.0]
+ enable_lock_retries!
+
+ def change
+ add_column :protected_branches, :namespace_id, :bigint
+ end
+end
diff --git a/db/migrate/20220613112030_add_namespace_id_indexes_foreign_key_to_protected_branches.rb b/db/migrate/20220613112030_add_namespace_id_indexes_foreign_key_to_protected_branches.rb
new file mode 100644
index 00000000000..18a91743746
--- /dev/null
+++ b/db/migrate/20220613112030_add_namespace_id_indexes_foreign_key_to_protected_branches.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class AddNamespaceIdIndexesForeignKeyToProtectedBranches < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_protected_branches_namespace_id'
+
+ def up
+ add_concurrent_index :protected_branches, :namespace_id, name: INDEX_NAME, where: 'namespace_id IS NOT NULL'
+ add_concurrent_foreign_key :protected_branches, :namespaces, column: :namespace_id, on_delete: :cascade
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key :protected_branches, column: :namespace_id
+ end
+ remove_concurrent_index :protected_branches, :namespace_id, name: INDEX_NAME
+ end
+end
diff --git a/db/migrate/20220613112031_add_group_or_project_constraint_in_protected_branches.rb b/db/migrate/20220613112031_add_group_or_project_constraint_in_protected_branches.rb
new file mode 100644
index 00000000000..b7f20450480
--- /dev/null
+++ b/db/migrate/20220613112031_add_group_or_project_constraint_in_protected_branches.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class AddGroupOrProjectConstraintInProtectedBranches < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ CONSTRAINT_NAME = 'protected_branches_project_id_namespace_id_any_not_null'
+
+ def up
+ constraint = <<~CONSTRAINT
+ (project_id IS NULL) <> (namespace_id IS NULL)
+ CONSTRAINT
+ add_check_constraint :protected_branches, constraint, CONSTRAINT_NAME
+ end
+
+ def down
+ remove_check_constraint :protected_branches, CONSTRAINT_NAME
+ end
+end
diff --git a/db/migrate/20220613112032_change_project_id_null_in_protected_branches.rb b/db/migrate/20220613112032_change_project_id_null_in_protected_branches.rb
new file mode 100644
index 00000000000..4bf8437d4fb
--- /dev/null
+++ b/db/migrate/20220613112032_change_project_id_null_in_protected_branches.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class ChangeProjectIdNullInProtectedBranches < Gitlab::Database::Migration[2.0]
+ enable_lock_retries!
+
+ def up
+ change_column_null :protected_branches, :project_id, true
+ end
+
+ def down
+ change_column_null :protected_branches, :project_id, false
+ end
+end
diff --git a/db/migrate/20220721065723_add_issue_branch_template_to_project_settings.rb b/db/migrate/20220721065723_add_issue_branch_template_to_project_settings.rb
new file mode 100644
index 00000000000..d65bd2c21e7
--- /dev/null
+++ b/db/migrate/20220721065723_add_issue_branch_template_to_project_settings.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddIssueBranchTemplateToProjectSettings < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ def up
+ with_lock_retries do
+ add_column :project_settings, :issue_branch_template, :text, if_not_exists: true
+ end
+
+ add_text_limit :project_settings, :issue_branch_template, 255
+ end
+
+ def down
+ remove_column :project_settings, :issue_branch_template, if_exists: true
+ end
+end
diff --git a/db/migrate/20220919062640_add_mirror_branch_regex_to_remote_mirrors.rb b/db/migrate/20220919062640_add_mirror_branch_regex_to_remote_mirrors.rb
new file mode 100644
index 00000000000..0f27ba9488b
--- /dev/null
+++ b/db/migrate/20220919062640_add_mirror_branch_regex_to_remote_mirrors.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddMirrorBranchRegexToRemoteMirrors < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ def up
+ add_column :remote_mirrors, :mirror_branch_regex, :text
+ add_text_limit :remote_mirrors, :mirror_branch_regex, 255
+ end
+
+ def down
+ remove_text_limit :remote_mirrors, :mirror_branch_regex
+ remove_column :remote_mirrors, :mirror_branch_regex
+ end
+end
diff --git a/db/migrate/20220920135632_add_jira_connect_proxy_url_setting.rb b/db/migrate/20220920135632_add_jira_connect_proxy_url_setting.rb
new file mode 100644
index 00000000000..c5842b6c787
--- /dev/null
+++ b/db/migrate/20220920135632_add_jira_connect_proxy_url_setting.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddJiraConnectProxyUrlSetting < Gitlab::Database::Migration[2.0]
+ # rubocop:disable Migration/AddLimitToTextColumns
+ # limit is added in 20220920135717_add_textlimit_to_jira_connect_proxy_url_setting.rb
+ def change
+ add_column :application_settings, :jira_connect_proxy_url, :text
+ end
+ # rubocop:enable Migration/AddLimitToTextColumns
+end
diff --git a/db/migrate/20220920135717_add_textlimit_to_jira_connect_proxy_url_setting.rb b/db/migrate/20220920135717_add_textlimit_to_jira_connect_proxy_url_setting.rb
new file mode 100644
index 00000000000..3a571580e79
--- /dev/null
+++ b/db/migrate/20220920135717_add_textlimit_to_jira_connect_proxy_url_setting.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddTextlimitToJiraConnectProxyUrlSetting < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ def up
+ add_text_limit :application_settings, :jira_connect_proxy_url, 255
+ end
+
+ def down
+ remove_text_limit :application_settings, :jira_connect_proxy_url
+ end
+end
diff --git a/db/migrate/20220926023734_add_mirror_branch_regex_to_project_settings.rb b/db/migrate/20220926023734_add_mirror_branch_regex_to_project_settings.rb
new file mode 100644
index 00000000000..5032a9ff964
--- /dev/null
+++ b/db/migrate/20220926023734_add_mirror_branch_regex_to_project_settings.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+class AddMirrorBranchRegexToProjectSettings < Gitlab::Database::Migration[2.0]
+ enable_lock_retries!
+
+ # rubocop:disable Migration/AddLimitToTextColumns
+ # limit is added in 20221027124848_add_text_limit_to_project_settings_mirror_branch_regex.rb
+ def change
+ add_column :project_settings, :mirror_branch_regex, :text
+ end
+ # rubocop:enable Migration/AddLimitToTextColumns
+end
diff --git a/db/migrate/20221003151747_create_audit_events_streaming_event_type_filters.rb b/db/migrate/20221003151747_create_audit_events_streaming_event_type_filters.rb
new file mode 100644
index 00000000000..c0acbe75d78
--- /dev/null
+++ b/db/migrate/20221003151747_create_audit_events_streaming_event_type_filters.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class CreateAuditEventsStreamingEventTypeFilters < Gitlab::Database::Migration[2.0]
+ UNIQ_INDEX_NAME = 'unique_streaming_event_type_filters_destination_id'
+
+ def change
+ create_table :audit_events_streaming_event_type_filters do |t|
+ t.timestamps_with_timezone null: false
+ t.references :external_audit_event_destination,
+ null: false,
+ index: false,
+ foreign_key: { to_table: 'audit_events_external_audit_event_destinations', on_delete: :cascade }
+ t.text :audit_event_type, null: false, limit: 255
+
+ t.index [:external_audit_event_destination_id, :audit_event_type], unique: true, name: UNIQ_INDEX_NAME
+ end
+ end
+end
diff --git a/db/migrate/20221010103207_add_product_analytics_enabled_to_application_settings.rb b/db/migrate/20221010103207_add_product_analytics_enabled_to_application_settings.rb
new file mode 100644
index 00000000000..24887e7b9fb
--- /dev/null
+++ b/db/migrate/20221010103207_add_product_analytics_enabled_to_application_settings.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddProductAnalyticsEnabledToApplicationSettings < Gitlab::Database::Migration[2.0]
+ def change
+ add_column :application_settings, :product_analytics_enabled, :boolean, default: false, null: false
+ end
+end
diff --git a/db/migrate/20221010184839_add_new_amount_used_to_ci_project_monthly_usages.rb b/db/migrate/20221010184839_add_new_amount_used_to_ci_project_monthly_usages.rb
new file mode 100644
index 00000000000..5c77dfe9334
--- /dev/null
+++ b/db/migrate/20221010184839_add_new_amount_used_to_ci_project_monthly_usages.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+class AddNewAmountUsedToCiProjectMonthlyUsages < Gitlab::Database::Migration[2.0]
+ TABLE = :ci_project_monthly_usages
+ OLD_COLUMN = :amount_used
+ NEW_COLUMN = :new_amount_used
+ TRIGGER_NAME = 'sync_projects_amount_used_columns'
+
+ disable_ddl_transaction!
+
+ def up
+ check_trigger_permissions!(TABLE)
+
+ add_column(TABLE, NEW_COLUMN, :decimal, default: 0.0, precision: 18, scale: 4, null: false, if_not_exists: true)
+
+ install_rename_triggers(TABLE, OLD_COLUMN, NEW_COLUMN, trigger_name: TRIGGER_NAME)
+ end
+
+ def down
+ remove_rename_triggers(TABLE, TRIGGER_NAME)
+
+ remove_column(TABLE, NEW_COLUMN)
+ end
+end
diff --git a/db/migrate/20221010201815_add_purl_type_to_sbom_components.rb b/db/migrate/20221010201815_add_purl_type_to_sbom_components.rb
new file mode 100644
index 00000000000..3ab2aa262b1
--- /dev/null
+++ b/db/migrate/20221010201815_add_purl_type_to_sbom_components.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddPurlTypeToSbomComponents < Gitlab::Database::Migration[2.0]
+ def change
+ add_column :sbom_components, :purl_type, :smallint
+ end
+end
diff --git a/db/migrate/20221010202339_remove_unique_index_on_sbom_components_type_and_name.rb b/db/migrate/20221010202339_remove_unique_index_on_sbom_components_type_and_name.rb
new file mode 100644
index 00000000000..fe092232ca6
--- /dev/null
+++ b/db/migrate/20221010202339_remove_unique_index_on_sbom_components_type_and_name.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class RemoveUniqueIndexOnSbomComponentsTypeAndName < Gitlab::Database::Migration[2.0]
+ INDEX_NAME = 'index_sbom_components_on_component_type_and_name'
+
+ disable_ddl_transaction!
+
+ def up
+ remove_concurrent_index_by_name :sbom_components, name: INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :sbom_components, [:component_type, :name], unique: true, name: INDEX_NAME
+ end
+end
diff --git a/db/migrate/20221010202408_add_unique_index_on_sbom_components_type_name_and_purl_type.rb b/db/migrate/20221010202408_add_unique_index_on_sbom_components_type_name_and_purl_type.rb
new file mode 100644
index 00000000000..5935db7c2c1
--- /dev/null
+++ b/db/migrate/20221010202408_add_unique_index_on_sbom_components_type_name_and_purl_type.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddUniqueIndexOnSbomComponentsTypeNameAndPurlType < Gitlab::Database::Migration[2.0]
+ INDEX_NAME = 'index_sbom_components_on_component_type_name_and_purl_type'
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :sbom_components, [:name, :purl_type, :component_type], unique: true, name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :sbom_components, name: INDEX_NAME
+ end
+end
diff --git a/db/migrate/20221013103738_add_disable_admin_oauth_scopes.rb b/db/migrate/20221013103738_add_disable_admin_oauth_scopes.rb
new file mode 100644
index 00000000000..3406252790d
--- /dev/null
+++ b/db/migrate/20221013103738_add_disable_admin_oauth_scopes.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddDisableAdminOauthScopes < Gitlab::Database::Migration[2.0]
+ def change
+ add_column :application_settings, :disable_admin_oauth_scopes, :boolean, null: false, default: false
+ end
+end
diff --git a/db/migrate/20221015000511_add_email_confirmation_setting_to_application_settings.rb b/db/migrate/20221015000511_add_email_confirmation_setting_to_application_settings.rb
new file mode 100644
index 00000000000..42fa4c1baf5
--- /dev/null
+++ b/db/migrate/20221015000511_add_email_confirmation_setting_to_application_settings.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddEmailConfirmationSettingToApplicationSettings < Gitlab::Database::Migration[2.0]
+ def change
+ add_column :application_settings, :email_confirmation_setting, :integer, limit: 2, default: 2
+ end
+end
diff --git a/db/migrate/20221017084208_rename_ci_pipeline_metadata_title.rb b/db/migrate/20221017084208_rename_ci_pipeline_metadata_title.rb
new file mode 100644
index 00000000000..3c1a3bbd40a
--- /dev/null
+++ b/db/migrate/20221017084208_rename_ci_pipeline_metadata_title.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class RenameCiPipelineMetadataTitle < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ def up
+ rename_column_concurrently :ci_pipeline_metadata, :title, :name, batch_column_name: :pipeline_id
+ end
+
+ def down
+ undo_rename_column_concurrently :ci_pipeline_metadata, :title, :name
+ end
+end
diff --git a/db/migrate/20221018050323_add_objective_and_keyresult_to_work_item_types.rb b/db/migrate/20221018050323_add_objective_and_keyresult_to_work_item_types.rb
new file mode 100644
index 00000000000..51834a3b19b
--- /dev/null
+++ b/db/migrate/20221018050323_add_objective_and_keyresult_to_work_item_types.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+# See https://docs.gitlab.com/ee/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class AddObjectiveAndKeyresultToWorkItemTypes < Gitlab::Database::Migration[2.0]
+ # Added the following statements as per https://docs.gitlab.com/ee/development/database/migrations_for_multiple_databases.html
+ disable_ddl_transaction!
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ OBJECTIVE_ENUM_VALUE = 5
+ KEY_RESULT_ENUM_VALUE = 6
+
+ class WorkItemType < MigrationRecord
+ self.inheritance_column = :_type_disabled
+ self.table_name = 'work_item_types'
+ end
+
+ def up
+ # New instances will not run this migration and add this type via fixtures
+ # checking if record exists mostly because migration specs will run all migrations
+ # and that will conflict with the preloaded base work item types
+ objective_work_item = WorkItemType.find_by(base_type: OBJECTIVE_ENUM_VALUE, name: 'Objective', namespace_id: nil)
+ key_result_work_item = WorkItemType.find_by(base_type: KEY_RESULT_ENUM_VALUE, name: 'Key Result', namespace_id: nil)
+
+ if objective_work_item
+ say('Objective item record exist, skipping creation')
+ else
+ execute(
+ <<~SQL
+ INSERT INTO work_item_types (base_type, icon_name, name, created_at, updated_at) VALUES(
+ #{OBJECTIVE_ENUM_VALUE}, 'issue-type-objective', 'Objective', NOW(), NOW()
+ ) ON CONFLICT DO NOTHING;
+ SQL
+ )
+ end
+
+ if key_result_work_item
+ say('Keyresult item record exist, skipping creation')
+ else
+ execute(
+ <<~SQL
+ INSERT INTO work_item_types (base_type, icon_name, name, created_at, updated_at) VALUES(
+ #{KEY_RESULT_ENUM_VALUE}, 'issue-type-keyresult', 'Key Result', NOW(), NOW()
+ ) ON CONFLICT DO NOTHING;
+ SQL
+ )
+ end
+ end
+
+ def down
+ # There's the remote possibility that issues could already be
+ # using this issue type, with a tight foreign constraint.
+ # Therefore we will not attempt to remove any data.
+ end
+end
diff --git a/db/migrate/20221018092552_add_file_name_index_to_packages_rpm_repository_files.rb b/db/migrate/20221018092552_add_file_name_index_to_packages_rpm_repository_files.rb
new file mode 100644
index 00000000000..fcec3a6800d
--- /dev/null
+++ b/db/migrate/20221018092552_add_file_name_index_to_packages_rpm_repository_files.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class AddFileNameIndexToPackagesRpmRepositoryFiles < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ NEW_INDEX_NAME = 'index_packages_rpm_repository_files_on_project_id_and_file_name'
+ OLD_INDEX_NAME = 'index_packages_rpm_repository_files_on_project_id'
+
+ def up
+ add_concurrent_index :packages_rpm_repository_files, %i[project_id file_name], name: NEW_INDEX_NAME
+ remove_concurrent_index :packages_rpm_repository_files, :project_id, name: OLD_INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :packages_rpm_repository_files, :project_id, name: OLD_INDEX_NAME
+ remove_concurrent_index :packages_rpm_repository_files, %i[project_id file_name], name: NEW_INDEX_NAME
+ end
+end
diff --git a/db/migrate/20221018124029_add_consume_after_to_ghost_user_migrations.rb b/db/migrate/20221018124029_add_consume_after_to_ghost_user_migrations.rb
new file mode 100644
index 00000000000..148c6516dc9
--- /dev/null
+++ b/db/migrate/20221018124029_add_consume_after_to_ghost_user_migrations.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddConsumeAfterToGhostUserMigrations < Gitlab::Database::Migration[2.0]
+ def change
+ add_column :ghost_user_migrations, :consume_after, :datetime_with_timezone, null: false, default: -> { 'NOW()' }
+ end
+end
diff --git a/db/migrate/20221018124035_add_consume_after_index_to_ghost_user_migrations.rb b/db/migrate/20221018124035_add_consume_after_index_to_ghost_user_migrations.rb
new file mode 100644
index 00000000000..543d91b3f33
--- /dev/null
+++ b/db/migrate/20221018124035_add_consume_after_index_to_ghost_user_migrations.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddConsumeAfterIndexToGhostUserMigrations < Gitlab::Database::Migration[2.0]
+ INDEX_NAME = 'index_ghost_user_migrations_on_consume_after_id'
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :ghost_user_migrations, [:consume_after, :id], name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :ghost_user_migrations, INDEX_NAME
+ end
+end
diff --git a/db/migrate/20221018202524_create_dependency_proxy_blob_states.rb b/db/migrate/20221018202524_create_dependency_proxy_blob_states.rb
new file mode 100644
index 00000000000..b042df43f04
--- /dev/null
+++ b/db/migrate/20221018202524_create_dependency_proxy_blob_states.rb
@@ -0,0 +1,49 @@
+# frozen_string_literal: true
+
+class CreateDependencyProxyBlobStates < Gitlab::Database::Migration[2.0]
+ VERIFICATION_STATE_INDEX_NAME = "index_dependency_proxy_blob_states_on_verification_state"
+ PENDING_VERIFICATION_INDEX_NAME = "index_dependency_proxy_blob_states_pending_verification"
+ FAILED_VERIFICATION_INDEX_NAME = "index_dependency_proxy_blob_states_failed_verification"
+ NEEDS_VERIFICATION_INDEX_NAME = "index_dependency_proxy_blob_states_needs_verification"
+
+ enable_lock_retries!
+
+ def up
+ table_comment = {
+ owner: 'group::geo',
+ description: 'Geo-specific table to store the verification state of DependencyProxy::Blob objects'
+ }
+
+ create_table :dependency_proxy_blob_states, id: false, comment: Gitlab::Json.dump(table_comment) do |t|
+ t.datetime_with_timezone :verification_started_at
+ t.datetime_with_timezone :verification_retry_at
+ t.datetime_with_timezone :verified_at
+ t.references :dependency_proxy_blob,
+ primary_key: true,
+ default: nil,
+ index: true,
+ foreign_key: { on_delete: :cascade }
+ t.integer :verification_state, default: 0, limit: 2, null: false
+ t.integer :verification_retry_count, default: 0, limit: 2, null: false
+ t.binary :verification_checksum, using: 'verification_checksum::bytea'
+ t.text :verification_failure, limit: 255
+
+ t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME
+ t.index :verified_at,
+ where: "(verification_state = 0)",
+ order: { verified_at: 'ASC NULLS FIRST' },
+ name: PENDING_VERIFICATION_INDEX_NAME
+ t.index :verification_retry_at,
+ where: "(verification_state = 3)",
+ order: { verification_retry_at: 'ASC NULLS FIRST' },
+ name: FAILED_VERIFICATION_INDEX_NAME
+ t.index :verification_state,
+ where: "(verification_state = 0 OR verification_state = 3)",
+ name: NEEDS_VERIFICATION_INDEX_NAME
+ end
+ end
+
+ def down
+ drop_table :dependency_proxy_blob_states
+ end
+end
diff --git a/db/migrate/20221020124018_add_delete_started_at_to_container_repositories.rb b/db/migrate/20221020124018_add_delete_started_at_to_container_repositories.rb
new file mode 100644
index 00000000000..c225d9cc343
--- /dev/null
+++ b/db/migrate/20221020124018_add_delete_started_at_to_container_repositories.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class AddDeleteStartedAtToContainerRepositories < Gitlab::Database::Migration[2.0]
+ def change
+ add_column :container_repositories,
+ :delete_started_at,
+ :datetime_with_timezone,
+ null: true,
+ default: nil
+ end
+end
diff --git a/db/migrate/20221021213216_create_namespace_commit_emails.rb b/db/migrate/20221021213216_create_namespace_commit_emails.rb
new file mode 100644
index 00000000000..07811bf7b75
--- /dev/null
+++ b/db/migrate/20221021213216_create_namespace_commit_emails.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class CreateNamespaceCommitEmails < Gitlab::Database::Migration[2.0]
+ def change
+ create_table :namespace_commit_emails do |t|
+ t.references :user, index: false, null: false, foreign_key: { on_delete: :cascade }
+ t.references :namespace, null: false
+ t.references :email, null: false
+ t.timestamps_with_timezone null: false
+
+ t.index [:user_id, :namespace_id], unique: true
+ end
+ end
+end
diff --git a/db/migrate/20221022213505_add_namespace_commit_emails_namespace_fk.rb b/db/migrate/20221022213505_add_namespace_commit_emails_namespace_fk.rb
new file mode 100644
index 00000000000..0c543b03397
--- /dev/null
+++ b/db/migrate/20221022213505_add_namespace_commit_emails_namespace_fk.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddNamespaceCommitEmailsNamespaceFk < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_foreign_key :namespace_commit_emails, :namespaces, column: :namespace_id, on_delete: :cascade
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key :namespace_commit_emails, column: :namespace_id
+ end
+ end
+end
diff --git a/db/migrate/20221022213521_add_namespace_commit_emails_email_fk.rb b/db/migrate/20221022213521_add_namespace_commit_emails_email_fk.rb
new file mode 100644
index 00000000000..9dbde26475c
--- /dev/null
+++ b/db/migrate/20221022213521_add_namespace_commit_emails_email_fk.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddNamespaceCommitEmailsEmailFk < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_foreign_key :namespace_commit_emails, :emails, column: :email_id, on_delete: :cascade
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key :namespace_commit_emails, column: :email_id
+ end
+ end
+end
diff --git a/db/migrate/20221025043930_change_default_value_on_password_last_changed_at_to_user_details.rb b/db/migrate/20221025043930_change_default_value_on_password_last_changed_at_to_user_details.rb
new file mode 100644
index 00000000000..49436043a66
--- /dev/null
+++ b/db/migrate/20221025043930_change_default_value_on_password_last_changed_at_to_user_details.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class ChangeDefaultValueOnPasswordLastChangedAtToUserDetails < Gitlab::Database::Migration[2.0]
+ enable_lock_retries!
+
+ # rubocop:disable Migration/RemoveColumn
+ def change
+ remove_column :user_details, :password_last_changed_at, :datetime_with_timezone
+ add_column :user_details, :password_last_changed_at, :datetime_with_timezone,
+ null: false, default: -> { 'NOW()' }, comment: 'JiHu-specific column'
+ end
+ # rubocop:enable Migration/RemoveColumn
+end
diff --git a/db/migrate/20221025105205_add_status_and_id_index_to_container_repositories.rb b/db/migrate/20221025105205_add_status_and_id_index_to_container_repositories.rb
new file mode 100644
index 00000000000..380ffd2e484
--- /dev/null
+++ b/db/migrate/20221025105205_add_status_and_id_index_to_container_repositories.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddStatusAndIdIndexToContainerRepositories < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_container_repositories_on_status_and_id'
+
+ def up
+ add_concurrent_index :container_repositories, [:status, :id], name: INDEX_NAME, where: 'status IS NOT NULL'
+ end
+
+ def down
+ remove_concurrent_index :container_repositories, [:status, :id], name: INDEX_NAME
+ end
+end
diff --git a/db/migrate/20221025145452_change_vulnerability_feedback_unique_idx.rb b/db/migrate/20221025145452_change_vulnerability_feedback_unique_idx.rb
new file mode 100644
index 00000000000..677245e1f50
--- /dev/null
+++ b/db/migrate/20221025145452_change_vulnerability_feedback_unique_idx.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class ChangeVulnerabilityFeedbackUniqueIdx < Gitlab::Database::Migration[2.0]
+ NEW_INDEX_NAME = :index_vulnerability_feedback_on_common_attributes
+ OLD_INDEX_NAME = :vulnerability_feedback_unique_idx
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :vulnerability_feedback,
+ %i[project_id category feedback_type project_fingerprint],
+ name: NEW_INDEX_NAME
+
+ remove_concurrent_index_by_name :vulnerability_feedback, OLD_INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :vulnerability_feedback,
+ %i[project_id category feedback_type project_fingerprint],
+ name: OLD_INDEX_NAME,
+ unique: true
+
+ remove_concurrent_index_by_name :vulnerability_feedback, NEW_INDEX_NAME
+ end
+end
diff --git a/db/migrate/20221025150202_add_index_for_finding_uuid_and_feedback_type_on_feedback.rb b/db/migrate/20221025150202_add_index_for_finding_uuid_and_feedback_type_on_feedback.rb
new file mode 100644
index 00000000000..f909573937b
--- /dev/null
+++ b/db/migrate/20221025150202_add_index_for_finding_uuid_and_feedback_type_on_feedback.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddIndexForFindingUuidAndFeedbackTypeOnFeedback < Gitlab::Database::Migration[2.0]
+ INDEX_NAME = :index_vulnerability_feedback_on_feedback_type_and_finding_uuid
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :vulnerability_feedback, %i[feedback_type finding_uuid], name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :vulnerability_feedback, INDEX_NAME
+ end
+end
diff --git a/db/migrate/20221027124848_add_text_limit_to_project_settings_mirror_branch_regex.rb b/db/migrate/20221027124848_add_text_limit_to_project_settings_mirror_branch_regex.rb
new file mode 100644
index 00000000000..e87eb207204
--- /dev/null
+++ b/db/migrate/20221027124848_add_text_limit_to_project_settings_mirror_branch_regex.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddTextLimitToProjectSettingsMirrorBranchRegex < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ def up
+ add_text_limit :project_settings, :mirror_branch_regex, 255
+ end
+
+ def down
+ remove_text_limit :project_settings, :mirror_branch_regex
+ end
+end
diff --git a/db/migrate/20221028015347_add_commit_committer_name_check_to_push_rules.rb b/db/migrate/20221028015347_add_commit_committer_name_check_to_push_rules.rb
new file mode 100644
index 00000000000..e9a0887f353
--- /dev/null
+++ b/db/migrate/20221028015347_add_commit_committer_name_check_to_push_rules.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddCommitCommitterNameCheckToPushRules < Gitlab::Database::Migration[2.0]
+ def change
+ add_column :push_rules, :commit_committer_name_check, :boolean, default: false, null: false
+ end
+end
diff --git a/db/migrate/20221028152422_add_finding_data_column_to_security_findings.rb b/db/migrate/20221028152422_add_finding_data_column_to_security_findings.rb
new file mode 100644
index 00000000000..a5d3929579b
--- /dev/null
+++ b/db/migrate/20221028152422_add_finding_data_column_to_security_findings.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddFindingDataColumnToSecurityFindings < Gitlab::Database::Migration[2.0]
+ enable_lock_retries!
+
+ def up
+ add_column :security_findings, :finding_data, :jsonb, default: {}, null: false
+ end
+
+ def down
+ remove_column :security_findings, :finding_data
+ end
+end
diff --git a/db/migrate/20221031102916_add_users_foreign_key_to_projects.rb b/db/migrate/20221031102916_add_users_foreign_key_to_projects.rb
new file mode 100644
index 00000000000..fb37b3b37c2
--- /dev/null
+++ b/db/migrate/20221031102916_add_users_foreign_key_to_projects.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddUsersForeignKeyToProjects < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_foreign_key :projects, :users, column: :creator_id, on_delete: :nullify, validate: false
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key_if_exists :projects, column: :creator_id
+ end
+ end
+end
diff --git a/db/migrate/20221101032521_add_default_preferred_language_to_application_settings.rb b/db/migrate/20221101032521_add_default_preferred_language_to_application_settings.rb
new file mode 100644
index 00000000000..d6941f95465
--- /dev/null
+++ b/db/migrate/20221101032521_add_default_preferred_language_to_application_settings.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddDefaultPreferredLanguageToApplicationSettings < Gitlab::Database::Migration[2.0]
+ def change
+ # rubocop:disable Migration/AddLimitToTextColumns
+ # limit is added in 20221101032600_add_text_limit_to_default_preferred_language_on_application_settings.rb
+ add_column :application_settings, :default_preferred_language, :text, default: 'en', null: false
+ # rubocop:enable Migration/AddLimitToTextColumns
+ end
+end
diff --git a/db/migrate/20221101032600_add_text_limit_to_default_preferred_language_on_application_settings.rb b/db/migrate/20221101032600_add_text_limit_to_default_preferred_language_on_application_settings.rb
new file mode 100644
index 00000000000..1f6b9815b93
--- /dev/null
+++ b/db/migrate/20221101032600_add_text_limit_to_default_preferred_language_on_application_settings.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddTextLimitToDefaultPreferredLanguageOnApplicationSettings < Gitlab::Database::Migration[2.0]
+ MAXIMUM_LIMIT = 32
+
+ disable_ddl_transaction!
+
+ def up
+ add_text_limit :application_settings, :default_preferred_language, MAXIMUM_LIMIT
+ end
+
+ def down
+ remove_text_limit :application_settings, :default_preferred_language
+ end
+end
diff --git a/db/migrate/20221101195903_change_email_confirmation_setting_default.rb b/db/migrate/20221101195903_change_email_confirmation_setting_default.rb
new file mode 100644
index 00000000000..86c1896f184
--- /dev/null
+++ b/db/migrate/20221101195903_change_email_confirmation_setting_default.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class ChangeEmailConfirmationSettingDefault < Gitlab::Database::Migration[2.0]
+ def change
+ change_column_default(:application_settings, :email_confirmation_setting, from: 2, to: 0)
+ end
+end
diff --git a/db/migrate/20221101201031_set_email_confirmation_setting_from_send_user_confirmation_email_setting.rb b/db/migrate/20221101201031_set_email_confirmation_setting_from_send_user_confirmation_email_setting.rb
new file mode 100644
index 00000000000..0c0a0dc1a58
--- /dev/null
+++ b/db/migrate/20221101201031_set_email_confirmation_setting_from_send_user_confirmation_email_setting.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class SetEmailConfirmationSettingFromSendUserConfirmationEmailSetting < Gitlab::Database::Migration[2.0]
+ restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+ class ApplicationSetting < MigrationRecord
+ self.table_name = 'application_settings'
+ end
+
+ def up
+ return unless ApplicationSetting.exists?
+ return unless ApplicationSetting.last.send_user_confirmation_email
+
+ ApplicationSetting.last.update(email_confirmation_setting: 2)
+ end
+
+ def down
+ return unless ApplicationSetting.exists?
+
+ ApplicationSetting.last.update(email_confirmation_setting: 0)
+ end
+end
diff --git a/db/migrate/20221102202130_extend_x509_subject_limit.rb b/db/migrate/20221102202130_extend_x509_subject_limit.rb
new file mode 100644
index 00000000000..3e6bfc7691c
--- /dev/null
+++ b/db/migrate/20221102202130_extend_x509_subject_limit.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class ExtendX509SubjectLimit < Gitlab::Database::Migration[2.0]
+ def up
+ change_column :x509_certificates, :subject, :string, limit: 512
+ end
+
+ def down
+ change_column :x509_certificates, :subject, :string, limit: 255
+ end
+end
diff --git a/db/migrate/20221102225800_add_max_seats_used_changed_at_index_to_gitlab_subscriptions.rb b/db/migrate/20221102225800_add_max_seats_used_changed_at_index_to_gitlab_subscriptions.rb
new file mode 100644
index 00000000000..b5cf8289673
--- /dev/null
+++ b/db/migrate/20221102225800_add_max_seats_used_changed_at_index_to_gitlab_subscriptions.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddMaxSeatsUsedChangedAtIndexToGitlabSubscriptions < Gitlab::Database::Migration[2.0]
+ INDEX_NAME = 'index_gitlab_subscriptions_on_max_seats_used_changed_at'
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :gitlab_subscriptions, [:max_seats_used_changed_at, :namespace_id], name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :gitlab_subscriptions, INDEX_NAME
+ end
+end
diff --git a/db/migrate/20221103131409_add_partial_index_on_primary_key_of_security_scans.rb b/db/migrate/20221103131409_add_partial_index_on_primary_key_of_security_scans.rb
new file mode 100644
index 00000000000..f3defcd38c6
--- /dev/null
+++ b/db/migrate/20221103131409_add_partial_index_on_primary_key_of_security_scans.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddPartialIndexOnPrimaryKeyOfSecurityScans < Gitlab::Database::Migration[2.0]
+ INDEX_NAME = :index_security_scans_on_id_for_non_purged_records
+ PURGED_STATE = 6
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :security_scans, :id, where: "status != #{PURGED_STATE}", name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :security_scans, INDEX_NAME
+ end
+end
diff --git a/db/migrate/20221104061320_add_disable_download_button_into_application_settings.rb b/db/migrate/20221104061320_add_disable_download_button_into_application_settings.rb
new file mode 100644
index 00000000000..b93085b8617
--- /dev/null
+++ b/db/migrate/20221104061320_add_disable_download_button_into_application_settings.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+class AddDisableDownloadButtonIntoApplicationSettings < Gitlab::Database::Migration[2.0]
+ def change
+ add_column :application_settings, :disable_download_button, :boolean,
+ null: false, default: false, comment: 'JiHu-specific column'
+ end
+end
diff --git a/db/migrate/20221104094042_remove_users_foreign_key_to_projects.rb b/db/migrate/20221104094042_remove_users_foreign_key_to_projects.rb
new file mode 100644
index 00000000000..19497c80b8e
--- /dev/null
+++ b/db/migrate/20221104094042_remove_users_foreign_key_to_projects.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class RemoveUsersForeignKeyToProjects < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ def up
+ with_lock_retries do
+ remove_foreign_key_if_exists :projects, column: :creator_id
+ end
+ end
+
+ def down
+ add_concurrent_foreign_key :projects, :users, column: :creator_id, on_delete: :nullify, validate: false
+ end
+end
diff --git a/db/migrate/20221107115247_change_scim_identity_group_id_remove_null.rb b/db/migrate/20221107115247_change_scim_identity_group_id_remove_null.rb
new file mode 100644
index 00000000000..f68cab68261
--- /dev/null
+++ b/db/migrate/20221107115247_change_scim_identity_group_id_remove_null.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+class ChangeScimIdentityGroupIdRemoveNull < Gitlab::Database::Migration[2.0]
+ def up
+ change_column_null :scim_identities, :group_id, true
+ end
+
+ def down
+ # There may now be nulls in the table, so we cannot re-add the constraint here.
+ end
+end
diff --git a/db/migrate/20221107115413_change_scim_oauth_access_token_group_id_remove_null.rb b/db/migrate/20221107115413_change_scim_oauth_access_token_group_id_remove_null.rb
new file mode 100644
index 00000000000..c33e67291a4
--- /dev/null
+++ b/db/migrate/20221107115413_change_scim_oauth_access_token_group_id_remove_null.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+class ChangeScimOauthAccessTokenGroupIdRemoveNull < Gitlab::Database::Migration[2.0]
+ def up
+ change_column_null :scim_oauth_access_tokens, :group_id, true
+ end
+
+ def down
+ # There may now be nulls in the table, so we cannot re-add the constraint here.
+ end
+end
diff --git a/db/migrate/20221107183222_create_project_wiki_repositories.rb b/db/migrate/20221107183222_create_project_wiki_repositories.rb
new file mode 100644
index 00000000000..770c62604ff
--- /dev/null
+++ b/db/migrate/20221107183222_create_project_wiki_repositories.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class CreateProjectWikiRepositories < Gitlab::Database::Migration[2.0]
+ def change
+ create_table :project_wiki_repositories do |t|
+ t.references :project, index: { unique: true }, foreign_key: { on_delete: :cascade }, null: false
+
+ t.timestamps_with_timezone null: false
+ end
+ end
+end
diff --git a/db/migrate/20221107184542_add_new_amount_used_to_ci_namespace_monthly_usages.rb b/db/migrate/20221107184542_add_new_amount_used_to_ci_namespace_monthly_usages.rb
new file mode 100644
index 00000000000..23a5a716164
--- /dev/null
+++ b/db/migrate/20221107184542_add_new_amount_used_to_ci_namespace_monthly_usages.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+class AddNewAmountUsedToCiNamespaceMonthlyUsages < Gitlab::Database::Migration[2.0]
+ TABLE = :ci_namespace_monthly_usages
+ OLD_COLUMN = :amount_used
+ NEW_COLUMN = :new_amount_used
+ TRIGGER_NAME = 'sync_namespaces_amount_used_columns'
+
+ disable_ddl_transaction!
+
+ def up
+ check_trigger_permissions!(TABLE)
+
+ add_column(TABLE, NEW_COLUMN, :decimal, default: 0.0, precision: 18, scale: 4, null: false, if_not_exists: true)
+
+ install_rename_triggers(TABLE, OLD_COLUMN, NEW_COLUMN, trigger_name: TRIGGER_NAME)
+ end
+
+ def down
+ remove_rename_triggers(TABLE, TRIGGER_NAME)
+
+ remove_column(TABLE, NEW_COLUMN)
+ end
+end
diff --git a/db/migrate/20221108015813_add_telesign_to_application_settings.rb b/db/migrate/20221108015813_add_telesign_to_application_settings.rb
new file mode 100644
index 00000000000..f8e4fb5340b
--- /dev/null
+++ b/db/migrate/20221108015813_add_telesign_to_application_settings.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class AddTelesignToApplicationSettings < Gitlab::Database::Migration[2.0]
+ def change
+ add_column :application_settings, :encrypted_telesign_customer_xid, :binary
+ add_column :application_settings, :encrypted_telesign_customer_xid_iv, :binary
+
+ add_column :application_settings, :encrypted_telesign_api_key, :binary
+ add_column :application_settings, :encrypted_telesign_api_key_iv, :binary
+ end
+end
diff --git a/db/migrate/20221108185442_add_project_wiki_repository_id_to_project_wiki_repository_states.rb b/db/migrate/20221108185442_add_project_wiki_repository_id_to_project_wiki_repository_states.rb
new file mode 100644
index 00000000000..317f58dac27
--- /dev/null
+++ b/db/migrate/20221108185442_add_project_wiki_repository_id_to_project_wiki_repository_states.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+class AddProjectWikiRepositoryIdToProjectWikiRepositoryStates < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'idx_project_wiki_repository_states_project_wiki_repository_id'
+
+ def up
+ with_lock_retries do
+ unless column_exists?(:project_wiki_repository_states, :project_wiki_repository_id)
+ add_column :project_wiki_repository_states, :project_wiki_repository_id, :bigint
+ end
+ end
+
+ add_concurrent_index :project_wiki_repository_states,
+ :project_wiki_repository_id,
+ name: INDEX_NAME
+
+ add_concurrent_foreign_key :project_wiki_repository_states,
+ :project_wiki_repositories,
+ column: :project_wiki_repository_id,
+ on_delete: :cascade
+ end
+
+ def down
+ with_lock_retries do
+ if column_exists?(:project_wiki_repository_states, :project_wiki_repository_id)
+ remove_column :project_wiki_repository_states, :project_wiki_repository_id
+ end
+ end
+
+ remove_foreign_key_if_exists :project_wiki_repository_states, column: :project_wiki_repository_id
+ remove_concurrent_index_by_name :project_wiki_repository_states, name: INDEX_NAME
+ end
+end
diff --git a/db/migrate/20221110105857_add_index_for_in_product_marketing_email_metrics.rb b/db/migrate/20221110105857_add_index_for_in_product_marketing_email_metrics.rb
new file mode 100644
index 00000000000..f1bc07e4197
--- /dev/null
+++ b/db/migrate/20221110105857_add_index_for_in_product_marketing_email_metrics.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddIndexForInProductMarketingEmailMetrics < Gitlab::Database::Migration[2.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_in_product_marketing_emails_on_track_series_id_clicked'
+
+ def up
+ add_concurrent_index :in_product_marketing_emails, %i[track series id cta_clicked_at], name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :in_product_marketing_emails, INDEX_NAME
+ end
+end
diff --git a/db/migrate/20221110150942_add_project_id_lower_name_index_remove_old_index.rb b/db/migrate/20221110150942_add_project_id_lower_name_index_remove_old_index.rb
new file mode 100644
index 00000000000..dfff2f89610
--- /dev/null
+++ b/db/migrate/20221110150942_add_project_id_lower_name_index_remove_old_index.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+class AddProjectIdLowerNameIndexRemoveOldIndex < Gitlab::Database::Migration[2.0]
+ INDEX_NAME = 'index_im_timeline_event_tags_name_project_id'
+ NEW_INDEX_NAME = 'index_im_timeline_event_tags_on_lower_name_and_project_id'
+
+ disable_ddl_transaction!
+
+ def up
+ # Add new index
+ add_concurrent_index :incident_management_timeline_event_tags, 'project_id, LOWER(name)',
+ unique: true, name: NEW_INDEX_NAME
+
+ # Remove old index
+ remove_concurrent_index_by_name :incident_management_timeline_event_tags, INDEX_NAME
+ end
+
+ def down
+ # Add old index
+ add_concurrent_index :incident_management_timeline_event_tags, [:project_id, :name],
+ unique: true, name: INDEX_NAME
+
+ # Remove new index
+ remove_concurrent_index_by_name :incident_management_timeline_event_tags, NEW_INDEX_NAME
+ end
+end