diff options
Diffstat (limited to 'db/migrate')
32 files changed, 627 insertions, 0 deletions
diff --git a/db/migrate/20200905013247_add_golang_package_max_file_size_to_plan_limits.rb b/db/migrate/20200905013247_add_golang_package_max_file_size_to_plan_limits.rb new file mode 100644 index 00000000000..0a6d0ce7339 --- /dev/null +++ b/db/migrate/20200905013247_add_golang_package_max_file_size_to_plan_limits.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddGolangPackageMaxFileSizeToPlanLimits < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column(:plan_limits, :golang_max_file_size, :bigint, default: 100.megabytes, null: false) + end +end diff --git a/db/migrate/20200907092610_add_user_id_to_group_import_states.rb b/db/migrate/20200907092610_add_user_id_to_group_import_states.rb new file mode 100644 index 00000000000..231bafeabdb --- /dev/null +++ b/db/migrate/20200907092610_add_user_id_to_group_import_states.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +class AddUserIdToGroupImportStates < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + unless column_exists?(:group_import_states, :user_id) + with_lock_retries do + add_column :group_import_states, :user_id, :bigint + end + end + + add_concurrent_foreign_key :group_import_states, :users, column: :user_id, on_delete: :cascade + add_concurrent_index :group_import_states, :user_id, where: 'user_id IS NOT NULL', name: 'index_group_import_states_on_user_id' + end + + def down + with_lock_retries do + remove_column :group_import_states, :user_id + end + end +end diff --git a/db/migrate/20200908094810_add_new_setting_to_namespace_setting.rb b/db/migrate/20200908094810_add_new_setting_to_namespace_setting.rb new file mode 100644 index 00000000000..27fc93a2c53 --- /dev/null +++ b/db/migrate/20200908094810_add_new_setting_to_namespace_setting.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddNewSettingToNamespaceSetting < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_column :namespace_settings, :allow_mfa_for_subgroups, :boolean, default: true, null: false + end + end + + def down + with_lock_retries do + remove_column :namespace_settings, :allow_mfa_for_subgroups + end + end +end diff --git a/db/migrate/20200909040555_create_package_events.rb b/db/migrate/20200909040555_create_package_events.rb new file mode 100644 index 00000000000..000ff051a7c --- /dev/null +++ b/db/migrate/20200909040555_create_package_events.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class CreatePackageEvents < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def change + create_table :packages_events do |t| + t.integer :event_type, null: false, limit: 2 + t.integer :event_scope, null: false, limit: 2 + t.integer :originator_type, null: false, limit: 2 + t.bigint :originator + t.datetime_with_timezone :created_at, null: false + + t.references :package, primary_key: false, default: nil, index: true, foreign_key: { to_table: :packages_packages, on_delete: :nullify }, type: :bigint + end + end +end diff --git a/db/migrate/20200909083339_add_change_reviewer_merge_request_to_notification_settings.rb b/db/migrate/20200909083339_add_change_reviewer_merge_request_to_notification_settings.rb new file mode 100644 index 00000000000..7024cc4a263 --- /dev/null +++ b/db/migrate/20200909083339_add_change_reviewer_merge_request_to_notification_settings.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddChangeReviewerMergeRequestToNotificationSettings < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column :notification_settings, :change_reviewer_merge_request, :boolean + end +end diff --git a/db/migrate/20200912152943_rename_admin_notification_email_application_setting.rb b/db/migrate/20200912152943_rename_admin_notification_email_application_setting.rb new file mode 100644 index 00000000000..b469099014d --- /dev/null +++ b/db/migrate/20200912152943_rename_admin_notification_email_application_setting.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class RenameAdminNotificationEmailApplicationSetting < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + rename_column_concurrently :application_settings, :admin_notification_email, :abuse_notification_email + end + + def down + undo_rename_column_concurrently :application_settings, :admin_notification_email, :abuse_notification_email + end +end diff --git a/db/migrate/20200914070140_add_expiration_policy_started_at_to_container_repositories.rb b/db/migrate/20200914070140_add_expiration_policy_started_at_to_container_repositories.rb new file mode 100644 index 00000000000..fa787fe98b0 --- /dev/null +++ b/db/migrate/20200914070140_add_expiration_policy_started_at_to_container_repositories.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +class AddExpirationPolicyStartedAtToContainerRepositories < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def up + add_column(:container_repositories, :expiration_policy_started_at, :datetime_with_timezone) + end + + def down + remove_column(:container_repositories, :expiration_policy_started_at) + end +end diff --git a/db/migrate/20200915134004_add_indices_to_approval_project_rules.rb b/db/migrate/20200915134004_add_indices_to_approval_project_rules.rb new file mode 100644 index 00000000000..b7b0e1da2cb --- /dev/null +++ b/db/migrate/20200915134004_add_indices_to_approval_project_rules.rb @@ -0,0 +1,25 @@ +# 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 AddIndicesToApprovalProjectRules < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + RULE_TYPE_INDEX_NAME = 'index_approval_project_rules_on_id_with_regular_type' + RULE_ID_INDEX_NAME = 'index_approval_project_rules_users_on_approval_project_rule_id' + + def up + add_concurrent_index :approval_project_rules, :id, where: 'rule_type = 0', name: RULE_TYPE_INDEX_NAME + add_concurrent_index :approval_project_rules_users, :approval_project_rule_id, name: RULE_ID_INDEX_NAME + end + + def down + remove_concurrent_index :approval_project_rules, :id, where: 'rule_type = 0', name: RULE_TYPE_INDEX_NAME + remove_concurrent_index :approval_project_rules_users, :approval_project_rule_id, name: RULE_ID_INDEX_NAME + end +end diff --git a/db/migrate/20200916135044_add_state_id_index_to_merge_requests.rb b/db/migrate/20200916135044_add_state_id_index_to_merge_requests.rb new file mode 100644 index 00000000000..bec162ff888 --- /dev/null +++ b/db/migrate/20200916135044_add_state_id_index_to_merge_requests.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class AddStateIdIndexToMergeRequests < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_index :merge_requests, [:target_project_id, :iid, :state_id], name: :index_merge_requests_on_target_project_id_and_iid_and_state_id + end + + def down + remove_concurrent_index :merge_requests, [:target_project_id, :iid, :state_id], name: :index_merge_requests_on_target_project_id_and_iid_and_state_id + end +end diff --git a/db/migrate/20200916151442_add_result_index_to_authentication_events.rb b/db/migrate/20200916151442_add_result_index_to_authentication_events.rb new file mode 100644 index 00000000000..13b0521038e --- /dev/null +++ b/db/migrate/20200916151442_add_result_index_to_authentication_events.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class AddResultIndexToAuthenticationEvents < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX_NAME = 'index_authentication_events_on_provider_user_id_created_at' + + disable_ddl_transaction! + + def up + add_concurrent_index :authentication_events, [:provider, :user_id, :created_at], where: 'result = 1', name: INDEX_NAME + end + + def down + remove_concurrent_index_by_name :authentication_events, INDEX_NAME + end +end diff --git a/db/migrate/20200916165232_add_debian_max_file_size_to_plan_limits.rb b/db/migrate/20200916165232_add_debian_max_file_size_to_plan_limits.rb new file mode 100644 index 00000000000..9a91a5d2195 --- /dev/null +++ b/db/migrate/20200916165232_add_debian_max_file_size_to_plan_limits.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddDebianMaxFileSizeToPlanLimits < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column :plan_limits, :debian_max_file_size, :bigint, default: 3.gigabytes, null: false + end +end diff --git a/db/migrate/20200921093826_add_index_to_user_preferences.rb b/db/migrate/20200921093826_add_index_to_user_preferences.rb new file mode 100644 index 00000000000..78b04eb7a83 --- /dev/null +++ b/db/migrate/20200921093826_add_index_to_user_preferences.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class AddIndexToUserPreferences < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_index :user_preferences, :gitpod_enabled, name: :index_user_preferences_on_gitpod_enabled + end + + def down + remove_concurrent_index :user_preferences, :gitpod_enabled, name: :index_user_preferences_on_gitpod_enabled + end +end diff --git a/db/migrate/20200921130028_add_pages_deployment_id_to_pages_metadata.rb b/db/migrate/20200921130028_add_pages_deployment_id_to_pages_metadata.rb new file mode 100644 index 00000000000..395ce43d8ac --- /dev/null +++ b/db/migrate/20200921130028_add_pages_deployment_id_to_pages_metadata.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddPagesDeploymentIdToPagesMetadata < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column :project_pages_metadata, :pages_deployment_id, :bigint + end +end diff --git a/db/migrate/20200921131313_add_foreign_key_to_pages_deployment_id_in_project_pages_metadata.rb b/db/migrate/20200921131313_add_foreign_key_to_pages_deployment_id_in_project_pages_metadata.rb new file mode 100644 index 00000000000..8611f3ab943 --- /dev/null +++ b/db/migrate/20200921131313_add_foreign_key_to_pages_deployment_id_in_project_pages_metadata.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +class AddForeignKeyToPagesDeploymentIdInProjectPagesMetadata < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX_NAME = 'index_project_pages_metadata_on_pages_deployment_id' + + disable_ddl_transaction! + + def up + add_concurrent_index(:project_pages_metadata, :pages_deployment_id, name: INDEX_NAME) + add_concurrent_foreign_key :project_pages_metadata, :pages_deployments, column: :pages_deployment_id, on_delete: :nullify + end + + def down + remove_foreign_key_if_exists :project_pages_metadata, column: :pages_deployment_id + remove_concurrent_index_by_name(:project_pages_metadata, INDEX_NAME) + end +end diff --git a/db/migrate/20200921203231_remove_duplicate_cluster_agents_index.rb b/db/migrate/20200921203231_remove_duplicate_cluster_agents_index.rb new file mode 100644 index 00000000000..3f073e32d84 --- /dev/null +++ b/db/migrate/20200921203231_remove_duplicate_cluster_agents_index.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class RemoveDuplicateClusterAgentsIndex < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX = 'index_cluster_agents_on_project_id' + + disable_ddl_transaction! + + def up + remove_concurrent_index_by_name :cluster_agents, INDEX + end + + def down + add_concurrent_index :cluster_agents, :project_id, name: INDEX + end +end diff --git a/db/migrate/20200922052316_create_issue_email_participants.rb b/db/migrate/20200922052316_create_issue_email_participants.rb new file mode 100644 index 00000000000..a8aeb9d9a5a --- /dev/null +++ b/db/migrate/20200922052316_create_issue_email_participants.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +class CreateIssueEmailParticipants < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + unless table_exists?(:issue_email_participants) + with_lock_retries do + create_table :issue_email_participants do |t| + t.references :issue, index: false, null: false, foreign_key: { on_delete: :cascade } + t.datetime_with_timezone :created_at, null: false + t.datetime_with_timezone :updated_at, null: false + t.text :email, null: false + + t.index [:issue_id, :email], unique: true + end + end + + add_text_limit(:issue_email_participants, :email, 255) + end + end + + def down + with_lock_retries do + drop_table :issue_email_participants + end + end +end diff --git a/db/migrate/20200922093004_add_postgres_index_view.rb b/db/migrate/20200922093004_add_postgres_index_view.rb new file mode 100644 index 00000000000..c16eae4dd0b --- /dev/null +++ b/db/migrate/20200922093004_add_postgres_index_view.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +class AddPostgresIndexView < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def up + execute(<<~SQL) + CREATE VIEW postgres_indexes AS + SELECT + pg_namespace.nspname || '.' || pg_class.relname as identifier, + pg_index.indexrelid, + pg_namespace.nspname as schema, + pg_class.relname as name, + pg_index.indisunique as unique, + pg_index.indisvalid as valid_index, + pg_class.relispartition as partitioned, + pg_index.indisexclusion as exclusion, + pg_indexes.indexdef as definition, + pg_relation_size(pg_class.oid) as ondisk_size_bytes + FROM pg_index + INNER JOIN pg_class ON pg_class.oid = pg_index.indexrelid + INNER JOIN pg_namespace ON pg_class.relnamespace = pg_namespace.oid + INNER JOIN pg_indexes ON pg_class.relname = pg_indexes.indexname + WHERE pg_namespace.nspname <> 'pg_catalog' + SQL + end + + def down + execute(<<~SQL) + DROP VIEW postgres_indexes + SQL + end +end diff --git a/db/migrate/20200923071622_add_description_to_requirements.rb b/db/migrate/20200923071622_add_description_to_requirements.rb new file mode 100644 index 00000000000..b4b1250c10a --- /dev/null +++ b/db/migrate/20200923071622_add_description_to_requirements.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class AddDescriptionToRequirements < ActiveRecord::Migration[6.0] + DOWNTIME = false + + # rubocop:disable Migration/AddLimitToTextColumns + # limit for description is added in 20200923071644_add_text_limit_to_requirements_description + # for description_html limit is not set because it's for caching purposes and + # its value is generated from `description` + def change + add_column :requirements, :description, :text + add_column :requirements, :description_html, :text + end + # rubocop:enable Migration/AddLimitToTextColumns +end diff --git a/db/migrate/20200923071644_add_text_limit_to_requirements_description.rb b/db/migrate/20200923071644_add_text_limit_to_requirements_description.rb new file mode 100644 index 00000000000..0172d6bbba3 --- /dev/null +++ b/db/migrate/20200923071644_add_text_limit_to_requirements_description.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class AddTextLimitToRequirementsDescription < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_text_limit :requirements, :description, 10_000 + end + + def down + remove_text_limit :requirements, :description + end +end diff --git a/db/migrate/20200923102312_update_programming_language_colors.rb b/db/migrate/20200923102312_update_programming_language_colors.rb new file mode 100644 index 00000000000..37233bd3148 --- /dev/null +++ b/db/migrate/20200923102312_update_programming_language_colors.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true +require 'yaml' + +class UpdateProgrammingLanguageColors < ActiveRecord::Migration[6.0] + DOWNTIME = false + + class ProgrammingLanguage < ActiveRecord::Base; end + + def up + YAML.load_file("vendor/languages.yml").each do |name, metadata| + color = metadata["color"] + next unless color.present? + + ProgrammingLanguage.where(name: name).update(color: color) + end + end + + def down + # noop + end +end diff --git a/db/migrate/20200923130057_remove_tmp_container_scanning_index.rb b/db/migrate/20200923130057_remove_tmp_container_scanning_index.rb new file mode 100644 index 00000000000..e9ab6f9ff15 --- /dev/null +++ b/db/migrate/20200923130057_remove_tmp_container_scanning_index.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +class RemoveTmpContainerScanningIndex < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX_NAME = 'tmp_index_for_fixing_inconsistent_vulnerability_occurrences' + disable_ddl_transaction! + + def up + remove_concurrent_index_by_name(:vulnerability_occurrences, INDEX_NAME) + end + + def down + # report_type: 2 container scanning + add_concurrent_index(:vulnerability_occurrences, :id, + where: "LENGTH(location_fingerprint) = 40 AND report_type = 2", + name: INDEX_NAME) + end +end diff --git a/db/migrate/20200923140404_add_postgres_reindex_actions_table.rb b/db/migrate/20200923140404_add_postgres_reindex_actions_table.rb new file mode 100644 index 00000000000..ed37e44e201 --- /dev/null +++ b/db/migrate/20200923140404_add_postgres_reindex_actions_table.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +class AddPostgresReindexActionsTable < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + create_table :postgres_reindex_actions, if_not_exists: true do |t| + t.datetime_with_timezone :action_start, null: false + t.datetime_with_timezone :action_end + t.bigint :ondisk_size_bytes_start, null: false + t.bigint :ondisk_size_bytes_end + t.integer :state, limit: 2, null: false, default: 0 + t.text :index_identifier, null: false, index: true + end + + add_text_limit(:postgres_reindex_actions, :index_identifier, 255) + end + + def down + drop_table :postgres_reindex_actions + end +end diff --git a/db/migrate/20200927224750_add_incident_issue_type_index_to_issues.rb b/db/migrate/20200927224750_add_incident_issue_type_index_to_issues.rb new file mode 100644 index 00000000000..ed4dd5b9cc1 --- /dev/null +++ b/db/migrate/20200927224750_add_incident_issue_type_index_to_issues.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +class AddIncidentIssueTypeIndexToIssues < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + INCIDENT_ISSUE_TYPE = 1 + INDEX_NAME = 'index_issues_project_id_issue_type_incident' + + def up + add_concurrent_index :issues, :project_id, where: "issue_type = #{INCIDENT_ISSUE_TYPE}", name: INDEX_NAME + end + + def down + remove_concurrent_index_by_name(:issues, INDEX_NAME) + end +end diff --git a/db/migrate/20200928095732_add_state_to_dast_site_validation.rb b/db/migrate/20200928095732_add_state_to_dast_site_validation.rb new file mode 100644 index 00000000000..7adeef54d71 --- /dev/null +++ b/db/migrate/20200928095732_add_state_to_dast_site_validation.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +class AddStateToDastSiteValidation < ActiveRecord::Migration[6.0] + DOWNTIME = false + + # rubocop:disable Migration/AddLimitToTextColumns + # limit is added in 20200928100408_add_text_limit_to_dast_site_validation_state.rb + def change + add_column :dast_site_validations, :state, :text, default: :pending, null: false + end + # rubocop:enable Migration/AddLimitToTextColumns +end diff --git a/db/migrate/20200928100408_add_text_limit_to_dast_site_validation_state.rb b/db/migrate/20200928100408_add_text_limit_to_dast_site_validation_state.rb new file mode 100644 index 00000000000..18bf7ee4bdc --- /dev/null +++ b/db/migrate/20200928100408_add_text_limit_to_dast_site_validation_state.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class AddTextLimitToDastSiteValidationState < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_text_limit :dast_site_validations, :state, 255 + end + + def down + remove_text_limit :dast_site_validations, :state + end +end diff --git a/db/migrate/20200928203531_create_alert_management_http_integrations.rb b/db/migrate/20200928203531_create_alert_management_http_integrations.rb new file mode 100644 index 00000000000..fe13fe400e3 --- /dev/null +++ b/db/migrate/20200928203531_create_alert_management_http_integrations.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +class CreateAlertManagementHttpIntegrations < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + UNIQUE_INDEX = 'index_http_integrations_on_active_and_project_and_endpoint' + + disable_ddl_transaction! + + def up + create_table :alert_management_http_integrations, if_not_exists: true do |t| + t.timestamps_with_timezone + t.bigint :project_id, index: true, null: false + t.boolean :active, null: false, default: false + t.text :encrypted_token, null: false + t.text :encrypted_token_iv, null: false + t.text :endpoint_identifier, null: false + t.text :name, null: false + end + + add_text_limit :alert_management_http_integrations, :encrypted_token, 255 + add_text_limit :alert_management_http_integrations, :encrypted_token_iv, 255 + add_text_limit :alert_management_http_integrations, :endpoint_identifier, 255 + add_text_limit :alert_management_http_integrations, :name, 255 + + add_index :alert_management_http_integrations, + [:active, :project_id, :endpoint_identifier], + unique: true, + name: UNIQUE_INDEX, + where: 'active' + end + + def down + drop_table :alert_management_http_integrations + end +end diff --git a/db/migrate/20200928210524_add_http_integrations_project_foreign_key.rb b/db/migrate/20200928210524_add_http_integrations_project_foreign_key.rb new file mode 100644 index 00000000000..f59a5a0b5bb --- /dev/null +++ b/db/migrate/20200928210524_add_http_integrations_project_foreign_key.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddHttpIntegrationsProjectForeignKey < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_foreign_key :alert_management_http_integrations, :projects, column: :project_id, on_delete: :cascade # rubocop:disable Migration/AddConcurrentForeignKey + end + end + + def down + with_lock_retries do + remove_foreign_key :alert_management_http_integrations, column: :project_id + end + end +end diff --git a/db/migrate/20200928233632_remove_terraform_state_verification_indexes.rb b/db/migrate/20200928233632_remove_terraform_state_verification_indexes.rb new file mode 100644 index 00000000000..0256d580cd6 --- /dev/null +++ b/db/migrate/20200928233632_remove_terraform_state_verification_indexes.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class RemoveTerraformStateVerificationIndexes < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + CHECKSUM_INDEX_NAME = "terraform_states_verification_checksum_partial".freeze + FAILURE_INDEX_NAME = "terraform_states_verification_failure_partial".freeze + + disable_ddl_transaction! + + def up + remove_concurrent_index :terraform_states, :verification_failure, name: FAILURE_INDEX_NAME + remove_concurrent_index :terraform_states, :verification_checksum, name: CHECKSUM_INDEX_NAME + end + + def down + add_concurrent_index :terraform_states, :verification_failure, where: "(verification_failure IS NOT NULL)", name: FAILURE_INDEX_NAME + add_concurrent_index :terraform_states, :verification_checksum, where: "(verification_checksum IS NOT NULL)", name: CHECKSUM_INDEX_NAME + end +end diff --git a/db/migrate/20200929063159_add_require_admin_approval_after_user_signup_to_application_settings.rb b/db/migrate/20200929063159_add_require_admin_approval_after_user_signup_to_application_settings.rb new file mode 100644 index 00000000000..92d82757b79 --- /dev/null +++ b/db/migrate/20200929063159_add_require_admin_approval_after_user_signup_to_application_settings.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddRequireAdminApprovalAfterUserSignupToApplicationSettings < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column :application_settings, :require_admin_approval_after_user_signup, :boolean, default: false, null: false + end +end diff --git a/db/migrate/20200930094812_update_postgres_indexes_view.rb b/db/migrate/20200930094812_update_postgres_indexes_view.rb new file mode 100644 index 00000000000..b36ea362e6f --- /dev/null +++ b/db/migrate/20200930094812_update_postgres_indexes_view.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +class UpdatePostgresIndexesView < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def up + execute(<<~SQL) + CREATE OR REPLACE VIEW postgres_indexes AS + SELECT + pg_namespace.nspname || '.' || pg_class.relname as identifier, + pg_index.indexrelid, + pg_namespace.nspname as schema, + pg_class.relname as name, + pg_index.indisunique as unique, + pg_index.indisvalid as valid_index, + pg_class.relispartition as partitioned, + pg_index.indisexclusion as exclusion, + pg_indexes.indexdef as definition, + pg_relation_size(pg_class.oid) as ondisk_size_bytes + FROM pg_index + INNER JOIN pg_class ON pg_class.oid = pg_index.indexrelid + INNER JOIN pg_namespace ON pg_class.relnamespace = pg_namespace.oid + INNER JOIN pg_indexes ON pg_class.relname = pg_indexes.indexname + WHERE pg_namespace.nspname <> 'pg_catalog' + AND pg_namespace.nspname IN ( + current_schema(), + 'gitlab_partitions_dynamic', + 'gitlab_partitions_static' + ) + SQL + end + + def down + execute(<<~SQL) + CREATE OR REPLACE VIEW postgres_indexes AS + SELECT + pg_namespace.nspname || '.' || pg_class.relname as identifier, + pg_index.indexrelid, + pg_namespace.nspname as schema, + pg_class.relname as name, + pg_index.indisunique as unique, + pg_index.indisvalid as valid_index, + pg_class.relispartition as partitioned, + pg_index.indisexclusion as exclusion, + pg_indexes.indexdef as definition, + pg_relation_size(pg_class.oid) as ondisk_size_bytes + FROM pg_index + INNER JOIN pg_class ON pg_class.oid = pg_index.indexrelid + INNER JOIN pg_namespace ON pg_class.relnamespace = pg_namespace.oid + INNER JOIN pg_indexes ON pg_class.relname = pg_indexes.indexname + WHERE pg_namespace.nspname <> 'pg_catalog' + SQL + end +end diff --git a/db/migrate/20200930131343_add_index_on_project_id_and_sha_to_deployments.rb b/db/migrate/20200930131343_add_index_on_project_id_and_sha_to_deployments.rb new file mode 100644 index 00000000000..19a536f8f6e --- /dev/null +++ b/db/migrate/20200930131343_add_index_on_project_id_and_sha_to_deployments.rb @@ -0,0 +1,20 @@ +# 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 AddIndexOnProjectIdAndShaToDeployments < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + DOWNTIME = false + INDEX_NAME = 'index_deployments_on_project_id_sha' + + disable_ddl_transaction! + + def up + add_concurrent_index :deployments, [:project_id, :sha], name: INDEX_NAME + end + + def down + remove_concurrent_index_by_name(:deployments, INDEX_NAME) + end +end diff --git a/db/migrate/20200930132319_add_api_fuzzing_to_plan_limits.rb b/db/migrate/20200930132319_add_api_fuzzing_to_plan_limits.rb new file mode 100644 index 00000000000..9be79974ee4 --- /dev/null +++ b/db/migrate/20200930132319_add_api_fuzzing_to_plan_limits.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddApiFuzzingToPlanLimits < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column :plan_limits, "ci_max_artifact_size_api_fuzzing", :integer, default: 0, null: false + end +end |