From 85dc423f7090da0a52c73eb66faf22ddb20efff9 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Sat, 19 Sep 2020 01:45:44 +0000 Subject: Add latest changes from gitlab-org/gitlab@13-4-stable-ee --- .../20190402150158_backport_enterprise_schema.rb | 2 +- ...200610033228_create_terraform_state_versions.rb | 28 ++++++++++++++ ...5_add_versioning_enabled_to_terraform_states.rb | 9 +++++ ...sers_foreign_key_to_terraform_state_versions.rb | 19 +++++++++ ...0200629134747_add_extra_index_to_label_links.rb | 26 +++++++++++++ ...tags_service_timeout_to_application_settings.rb | 19 +++++++++ ...ate_and_namespace_id_to_gitlab_subscriptions.rb | 3 +- ...200811154630_add_gitpod_application_settings.rb | 13 +++++++ ...1_add_gitpod_application_settings_text_limit.rb | 16 ++++++++ .../20200811154632_add_gitpod_user_preferences.rb | 9 +++++ ...add_verification_state_to_snippet_repository.rb | 18 +++++++++ ...d_verification_failure_to_snippet_repository.rb | 19 +++++++++ ...fication_failure_index_to_snippet_repository.rb | 19 +++++++++ ...356_remove_old_external_diff_migration_index.rb | 3 +- ..._kubernetes_version_to_cluster_providers_aws.rb | 28 ++++++++++++++ .../20200818092401_add_checksum_to_build_chunk.rb | 9 +++++ ...229_add_package_max_file_size_to_plan_limits.rb | 13 +++++++ ...0200819192143_add_emails_user_id_foreign_key.rb | 20 ++++++++++ ...408_add_index_to_container_scanning_findings.rb | 20 ++++++++++ ...dent_to_project_incident_management_settings.rb | 13 +++++++ .../20200820204041_create_ci_platform_metrics.rb | 31 +++++++++++++++ ...034419_add_unique_index_for_generic_packages.rb | 20 ++++++++++ .../20200821194920_create_atlassian_identities.rb | 39 +++++++++++++++++++ ...generic_package_max_file_size_to_plan_limits.rb | 9 +++++ .../20200824124623_create_issuable_severities.rb | 22 +++++++++++ ...0200825071735_create_merge_request_reviewers.rb | 22 +++++++++++ .../20200825081025_boards_epic_user_preferences.rb | 23 +++++++++++ ...081035_boards_epic_user_preferences_fk_board.rb | 19 +++++++++ ...5081045_boards_epic_user_preferences_fk_user.rb | 19 +++++++++ ...5081055_boards_epic_user_preferences_fk_epic.rb | 19 +++++++++ ...0200825084819_create_security_findings_table.rb | 27 +++++++++++++ ...pdate_package_file_size_plan_limits_defaults.rb | 13 +++++++ ...ne_artifacts_size_to_root_storage_statistics.rb | 19 +++++++++ ...0826073745_add_default_to_ci_pipeline_locked.rb | 23 +++++++++++ ...s_index_on_import_type_creator_id_created_at.rb | 21 ++++++++++ ...and_rule_type_to_approval_merge_request_rule.rb | 23 +++++++++++ .../20200827005322_add_creator_id_to_packages.rb | 9 +++++ ...quest_foreign_key_to_merge_request_reviewers.rb | 22 +++++++++++ ..._user_foreign_key_to_merge_request_reviewers.rb | 22 +++++++++++ ...ats_currently_in_use_in_gitlab_subscriptions.rb | 21 ++++++++++ ...234_add_ci_job_artifact_id_to_pages_metadata.rb | 9 +++++ ...ey_to_artifacts_archive_id_in_pages_metadata.rb | 21 ++++++++++ ...e_analytics_instance_statistics_measurements.rb | 16 ++++++++ ...0827142811_create_merge_request_diff_details.rb | 30 +++++++++++++++ ...57_add_index_expire_at_to_pipeline_artifacts.rb | 18 +++++++++ ...add_foreign_key_on_scan_id_to_security_scans.rb | 19 +++++++++ ..._key_on_scanner_id_to_vulnerability_scanners.rb | 19 +++++++++ .../20200830201204_add_index_to_package_creator.rb | 21 ++++++++++ ...01203055_add_id_created_at_index_to_packages.rb | 19 +++++++++ ...200901214416_change_pypi_python_version_type.rb | 18 +++++++++ ...542_update_package_max_file_size_plan_limits.rb | 45 ++++++++++++++++++++++ ...00903054946_add_elasticsearch_client_timeout.rb | 12 ++++++ ...ndex_to_resource_iteration_events_add_events.rb | 21 ++++++++++ ...04092131_add_merge_ref_sha_to_merge_requests.rb | 19 +++++++++ ...0200904131544_create_ci_build_pending_states.rb | 25 ++++++++++++ .../20200907021256_create_dast_site_tokens.rb | 34 ++++++++++++++++ .../20200907062101_create_dast_site_validations.rb | 40 +++++++++++++++++++ ...805_add_dast_site_validation_id_to_dast_site.rb | 33 ++++++++++++++++ .../20200908100053_create_authentication_events.rb | 33 ++++++++++++++++ ...k_positive_constraint_to_ci_platform_metrics.rb | 19 +++++++++ .../20200911120132_create_pages_deployments.rb | 28 ++++++++++++++ ...027_add_pages_deployment_project_foreign_key.rb | 19 +++++++++ ...48_add_pages_deployment_ci_build_foreign_key.rb | 19 +++++++++ ...00914091326_change_build_pending_state_enums.rb | 15 ++++++++ ...0200914104642_modify_merge_request_api_index.rb | 20 ++++++++++ ...914105202_remove_old_merge_request_api_index.rb | 17 ++++++++ ...duplicated_flag_into_security_findings_table.rb | 9 +++++ ..._on_deduplicated_column_of_security_findings.rb | 18 +++++++++ ...12_remove_index_on_security_findings_scan_id.rb | 18 +++++++++ ...erification_state_to_terraform_state_version.rb | 18 +++++++++ ...ion_failure_limit_to_terraform_state_version.rb | 19 +++++++++ ...ion_failure_index_to_terraform_state_version.rb | 25 ++++++++++++ 72 files changed, 1422 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20200610033228_create_terraform_state_versions.rb create mode 100644 db/migrate/20200610040615_add_versioning_enabled_to_terraform_states.rb create mode 100644 db/migrate/20200611013227_add_users_foreign_key_to_terraform_state_versions.rb create mode 100644 db/migrate/20200629134747_add_extra_index_to_label_links.rb create mode 100644 db/migrate/20200710113437_add_container_registry_delete_tags_service_timeout_to_application_settings.rb create mode 100644 db/migrate/20200811154630_add_gitpod_application_settings.rb create mode 100644 db/migrate/20200811154631_add_gitpod_application_settings_text_limit.rb create mode 100644 db/migrate/20200811154632_add_gitpod_user_preferences.rb create mode 100644 db/migrate/20200812150810_add_verification_state_to_snippet_repository.rb create mode 100644 db/migrate/20200812150811_add_verification_failure_to_snippet_repository.rb create mode 100644 db/migrate/20200812150812_add_verification_failure_index_to_snippet_repository.rb create mode 100644 db/migrate/20200818052219_add_kubernetes_version_to_cluster_providers_aws.rb create mode 100644 db/migrate/20200818092401_add_checksum_to_build_chunk.rb create mode 100644 db/migrate/20200818171229_add_package_max_file_size_to_plan_limits.rb create mode 100644 db/migrate/20200819192143_add_emails_user_id_foreign_key.rb create mode 100644 db/migrate/20200820105408_add_index_to_container_scanning_findings.rb create mode 100644 db/migrate/20200820130839_add_auto_close_incident_to_project_incident_management_settings.rb create mode 100644 db/migrate/20200820204041_create_ci_platform_metrics.rb create mode 100644 db/migrate/20200821034419_add_unique_index_for_generic_packages.rb create mode 100644 db/migrate/20200821194920_create_atlassian_identities.rb create mode 100644 db/migrate/20200824045812_add_generic_package_max_file_size_to_plan_limits.rb create mode 100644 db/migrate/20200824124623_create_issuable_severities.rb create mode 100644 db/migrate/20200825071735_create_merge_request_reviewers.rb create mode 100644 db/migrate/20200825081025_boards_epic_user_preferences.rb create mode 100644 db/migrate/20200825081035_boards_epic_user_preferences_fk_board.rb create mode 100644 db/migrate/20200825081045_boards_epic_user_preferences_fk_user.rb create mode 100644 db/migrate/20200825081055_boards_epic_user_preferences_fk_epic.rb create mode 100644 db/migrate/20200825084819_create_security_findings_table.rb create mode 100644 db/migrate/20200825154237_update_package_file_size_plan_limits_defaults.rb create mode 100644 db/migrate/20200825180050_add_pipeline_artifacts_size_to_root_storage_statistics.rb create mode 100644 db/migrate/20200826073745_add_default_to_ci_pipeline_locked.rb create mode 100644 db/migrate/20200826092324_add_projects_index_on_import_type_creator_id_created_at.rb create mode 100644 db/migrate/20200826212800_add_index_on_merge_request_id_and_rule_type_to_approval_merge_request_rule.rb create mode 100644 db/migrate/20200827005322_add_creator_id_to_packages.rb create mode 100644 db/migrate/20200827060911_add_merge_request_foreign_key_to_merge_request_reviewers.rb create mode 100644 db/migrate/20200827060932_add_user_foreign_key_to_merge_request_reviewers.rb create mode 100644 db/migrate/20200827085101_add_seats_currently_in_use_in_gitlab_subscriptions.rb create mode 100644 db/migrate/20200827102234_add_ci_job_artifact_id_to_pages_metadata.rb create mode 100644 db/migrate/20200827104432_add_foreign_key_to_artifacts_archive_id_in_pages_metadata.rb create mode 100644 db/migrate/20200827114902_create_analytics_instance_statistics_measurements.rb create mode 100644 db/migrate/20200827142811_create_merge_request_diff_details.rb create mode 100644 db/migrate/20200827150057_add_index_expire_at_to_pipeline_artifacts.rb create mode 100644 db/migrate/20200828155134_add_foreign_key_on_scan_id_to_security_scans.rb create mode 100644 db/migrate/20200828155205_add_foreign_key_on_scanner_id_to_vulnerability_scanners.rb create mode 100644 db/migrate/20200830201204_add_index_to_package_creator.rb create mode 100644 db/migrate/20200901203055_add_id_created_at_index_to_packages.rb create mode 100644 db/migrate/20200901214416_change_pypi_python_version_type.rb create mode 100644 db/migrate/20200902135542_update_package_max_file_size_plan_limits.rb create mode 100644 db/migrate/20200903054946_add_elasticsearch_client_timeout.rb create mode 100644 db/migrate/20200903092241_add_index_to_resource_iteration_events_add_events.rb create mode 100644 db/migrate/20200904092131_add_merge_ref_sha_to_merge_requests.rb create mode 100644 db/migrate/20200904131544_create_ci_build_pending_states.rb create mode 100644 db/migrate/20200907021256_create_dast_site_tokens.rb create mode 100644 db/migrate/20200907062101_create_dast_site_validations.rb create mode 100644 db/migrate/20200908033805_add_dast_site_validation_id_to_dast_site.rb create mode 100644 db/migrate/20200908100053_create_authentication_events.rb create mode 100644 db/migrate/20200908183231_add_check_positive_constraint_to_ci_platform_metrics.rb create mode 100644 db/migrate/20200911120132_create_pages_deployments.rb create mode 100644 db/migrate/20200911121027_add_pages_deployment_project_foreign_key.rb create mode 100644 db/migrate/20200911121048_add_pages_deployment_ci_build_foreign_key.rb create mode 100644 db/migrate/20200914091326_change_build_pending_state_enums.rb create mode 100644 db/migrate/20200914104642_modify_merge_request_api_index.rb create mode 100644 db/migrate/20200914105202_remove_old_merge_request_api_index.rb create mode 100644 db/migrate/20200914155135_add_deduplicated_flag_into_security_findings_table.rb create mode 100644 db/migrate/20200914183227_add_index_on_deduplicated_column_of_security_findings.rb create mode 100644 db/migrate/20200914184212_remove_index_on_security_findings_scan_id.rb create mode 100644 db/migrate/20200915152641_add_verification_state_to_terraform_state_version.rb create mode 100644 db/migrate/20200915164448_add_verification_failure_limit_to_terraform_state_version.rb create mode 100644 db/migrate/20200915164844_add_verification_failure_index_to_terraform_state_version.rb (limited to 'db/migrate') diff --git a/db/migrate/20190402150158_backport_enterprise_schema.rb b/db/migrate/20190402150158_backport_enterprise_schema.rb index 912da09af9d..dcf84d762a3 100644 --- a/db/migrate/20190402150158_backport_enterprise_schema.rb +++ b/db/migrate/20190402150158_backport_enterprise_schema.rb @@ -914,7 +914,7 @@ class BackportEnterpriseSchema < ActiveRecord::Migration[5.0] MSG end - raise Exception.new(message) + raise StandardError.new(message) end def create_missing_tables diff --git a/db/migrate/20200610033228_create_terraform_state_versions.rb b/db/migrate/20200610033228_create_terraform_state_versions.rb new file mode 100644 index 00000000000..10e9faa56ab --- /dev/null +++ b/db/migrate/20200610033228_create_terraform_state_versions.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +class CreateTerraformStateVersions < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + create_table :terraform_state_versions, if_not_exists: true do |t| + t.references :terraform_state, index: false, null: false, foreign_key: { on_delete: :cascade } + t.references :created_by_user, foreign_key: false + t.timestamps_with_timezone null: false + t.integer :version, null: false + t.integer :file_store, limit: 2, null: false + t.text :file, null: false + + t.index [:terraform_state_id, :version], unique: true, name: 'index_terraform_state_versions_on_state_id_and_version' + end + + add_text_limit :terraform_state_versions, :file, 255 + end + + def down + drop_table :terraform_state_versions + end +end diff --git a/db/migrate/20200610040615_add_versioning_enabled_to_terraform_states.rb b/db/migrate/20200610040615_add_versioning_enabled_to_terraform_states.rb new file mode 100644 index 00000000000..51a9fd3908b --- /dev/null +++ b/db/migrate/20200610040615_add_versioning_enabled_to_terraform_states.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddVersioningEnabledToTerraformStates < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column :terraform_states, :versioning_enabled, :boolean, null: false, default: false + end +end diff --git a/db/migrate/20200611013227_add_users_foreign_key_to_terraform_state_versions.rb b/db/migrate/20200611013227_add_users_foreign_key_to_terraform_state_versions.rb new file mode 100644 index 00000000000..b599622c776 --- /dev/null +++ b/db/migrate/20200611013227_add_users_foreign_key_to_terraform_state_versions.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddUsersForeignKeyToTerraformStateVersions < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_foreign_key :terraform_state_versions, :users, column: :created_by_user_id, on_delete: :nullify + end + + def down + with_lock_retries do + remove_foreign_key_if_exists :terraform_state_versions, :users, column: :created_by_user_id + end + end +end diff --git a/db/migrate/20200629134747_add_extra_index_to_label_links.rb b/db/migrate/20200629134747_add_extra_index_to_label_links.rb new file mode 100644 index 00000000000..e2066a1db42 --- /dev/null +++ b/db/migrate/20200629134747_add_extra_index_to_label_links.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +class AddExtraIndexToLabelLinks < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX_COVERING_ALL_COLUMNS = 'index_on_label_links_all_columns' + INDEX_TO_REPLACE = 'index_label_links_on_label_id' + NEW_INDEX = 'index_label_links_on_label_id_and_target_type' + + disable_ddl_transaction! + + def up + add_concurrent_index :label_links, [:target_id, :label_id, :target_type], name: INDEX_COVERING_ALL_COLUMNS + + add_concurrent_index :label_links, [:label_id, :target_type], name: NEW_INDEX + remove_concurrent_index_by_name(:label_links, INDEX_TO_REPLACE) + end + + def down + remove_concurrent_index_by_name(:label_links, INDEX_COVERING_ALL_COLUMNS) + + add_concurrent_index(:label_links, :label_id, name: INDEX_TO_REPLACE) + remove_concurrent_index_by_name(:label_links, NEW_INDEX) + end +end diff --git a/db/migrate/20200710113437_add_container_registry_delete_tags_service_timeout_to_application_settings.rb b/db/migrate/20200710113437_add_container_registry_delete_tags_service_timeout_to_application_settings.rb new file mode 100644 index 00000000000..d3865db2e18 --- /dev/null +++ b/db/migrate/20200710113437_add_container_registry_delete_tags_service_timeout_to_application_settings.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddContainerRegistryDeleteTagsServiceTimeoutToApplicationSettings < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def up + add_column( + :application_settings, + :container_registry_delete_tags_service_timeout, + :integer, + default: 250, + null: false + ) + end + + def down + remove_column(:application_settings, :container_registry_delete_tags_service_timeout) + end +end diff --git a/db/migrate/20200805071842_add_index_on_end_date_and_namespace_id_to_gitlab_subscriptions.rb b/db/migrate/20200805071842_add_index_on_end_date_and_namespace_id_to_gitlab_subscriptions.rb index 17b92b6b8a8..266b0a50318 100644 --- a/db/migrate/20200805071842_add_index_on_end_date_and_namespace_id_to_gitlab_subscriptions.rb +++ b/db/migrate/20200805071842_add_index_on_end_date_and_namespace_id_to_gitlab_subscriptions.rb @@ -12,6 +12,7 @@ class AddIndexOnEndDateAndNamespaceIdToGitlabSubscriptions < ActiveRecord::Migra end def down - remove_concurrent_index :gitlab_subscriptions, [:end_date, :namespace_id] + remove_concurrent_index :gitlab_subscriptions, [:end_date, :namespace_id], + name: 'index_gitlab_subscriptions_on_end_date_and_namespace_id' end end diff --git a/db/migrate/20200811154630_add_gitpod_application_settings.rb b/db/migrate/20200811154630_add_gitpod_application_settings.rb new file mode 100644 index 00000000000..e4211d25d0b --- /dev/null +++ b/db/migrate/20200811154630_add_gitpod_application_settings.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +class AddGitpodApplicationSettings < ActiveRecord::Migration[6.0] + DOWNTIME = false + + # rubocop:disable Migration/AddLimitToTextColumns + # limit is added in 20200727154631_add_gitpod_application_settings_text_limit + def change + add_column :application_settings, :gitpod_enabled, :boolean, default: false, null: false + add_column :application_settings, :gitpod_url, :text, default: 'https://gitpod.io/', null: true + end + # rubocop:enable Migration/AddLimitToTextColumns +end diff --git a/db/migrate/20200811154631_add_gitpod_application_settings_text_limit.rb b/db/migrate/20200811154631_add_gitpod_application_settings_text_limit.rb new file mode 100644 index 00000000000..1f43b5d88d5 --- /dev/null +++ b/db/migrate/20200811154631_add_gitpod_application_settings_text_limit.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class AddGitpodApplicationSettingsTextLimit < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_text_limit :application_settings, :gitpod_url, 255 + end + + def down + remove_text_limit :application_settings, :gitpod_url + end +end diff --git a/db/migrate/20200811154632_add_gitpod_user_preferences.rb b/db/migrate/20200811154632_add_gitpod_user_preferences.rb new file mode 100644 index 00000000000..0392c80d39c --- /dev/null +++ b/db/migrate/20200811154632_add_gitpod_user_preferences.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddGitpodUserPreferences < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column :user_preferences, :gitpod_enabled, :boolean, default: false, null: false + end +end diff --git a/db/migrate/20200812150810_add_verification_state_to_snippet_repository.rb b/db/migrate/20200812150810_add_verification_state_to_snippet_repository.rb new file mode 100644 index 00000000000..3fdf0b4adf4 --- /dev/null +++ b/db/migrate/20200812150810_add_verification_state_to_snippet_repository.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class AddVerificationStateToSnippetRepository < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + change_table(:snippet_repositories) do |t| + t.integer :verification_retry_count, limit: 2 + t.column :verification_retry_at, :datetime_with_timezone + t.column :verified_at, :datetime_with_timezone + t.binary :verification_checksum, using: 'verification_checksum::bytea' + + # rubocop:disable Migration/AddLimitToTextColumns + t.text :verification_failure + # rubocop:enable Migration/AddLimitToTextColumns + end + end +end diff --git a/db/migrate/20200812150811_add_verification_failure_to_snippet_repository.rb b/db/migrate/20200812150811_add_verification_failure_to_snippet_repository.rb new file mode 100644 index 00000000000..64cd094acf0 --- /dev/null +++ b/db/migrate/20200812150811_add_verification_failure_to_snippet_repository.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddVerificationFailureToSnippetRepository < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + CONSTRAINT_NAME = 'snippet_repositories_verification_failure_text_limit' + + def up + add_text_limit :snippet_repositories, :verification_failure, 255, constraint_name: CONSTRAINT_NAME + end + + def down + remove_check_constraint(:snippet_repositories, CONSTRAINT_NAME) + end +end diff --git a/db/migrate/20200812150812_add_verification_failure_index_to_snippet_repository.rb b/db/migrate/20200812150812_add_verification_failure_index_to_snippet_repository.rb new file mode 100644 index 00000000000..3c1d2dc988d --- /dev/null +++ b/db/migrate/20200812150812_add_verification_failure_index_to_snippet_repository.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddVerificationFailureIndexToSnippetRepository < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_index :snippet_repositories, :verification_failure, where: "(verification_failure IS NOT NULL)", name: 'snippet_repositories_verification_failure_partial' + add_concurrent_index :snippet_repositories, :verification_checksum, where: "(verification_checksum IS NOT NULL)", name: 'snippet_repositories_verification_checksum_partial' + end + + def down + remove_concurrent_index_by_name :snippet_repositories, 'snippet_repositories_verification_failure_partial' + remove_concurrent_index_by_name :snippet_repositories, 'snippet_repositories_verification_checksum_partial' + end +end diff --git a/db/migrate/20200813143356_remove_old_external_diff_migration_index.rb b/db/migrate/20200813143356_remove_old_external_diff_migration_index.rb index 9b466f8734f..a3730247f10 100644 --- a/db/migrate/20200813143356_remove_old_external_diff_migration_index.rb +++ b/db/migrate/20200813143356_remove_old_external_diff_migration_index.rb @@ -18,7 +18,8 @@ class RemoveOldExternalDiffMigrationIndex < ActiveRecord::Migration[6.0] add_concurrent_index( :merge_request_diffs, [:merge_request_id, :id], - where: { stored_externally: [nil, false] } + where: 'NOT stored_externally OR stored_externally IS NULL', + name: 'index_merge_request_diffs_on_merge_request_id_and_id_partial' ) end end diff --git a/db/migrate/20200818052219_add_kubernetes_version_to_cluster_providers_aws.rb b/db/migrate/20200818052219_add_kubernetes_version_to_cluster_providers_aws.rb new file mode 100644 index 00000000000..fa3d5210e91 --- /dev/null +++ b/db/migrate/20200818052219_add_kubernetes_version_to_cluster_providers_aws.rb @@ -0,0 +1,28 @@ +# 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 AddKubernetesVersionToClusterProvidersAws < ActiveRecord::Migration[6.0] + # Uncomment the following include if you require helper functions: + include Gitlab::Database::MigrationHelpers + + # Set this constant to true if this migration requires downtime. + DOWNTIME = false + + disable_ddl_transaction! + + def up + unless column_exists?(:cluster_providers_aws, :kubernetes_version) + add_column :cluster_providers_aws, :kubernetes_version, :text, null: false, default: '1.14' + end + + add_text_limit :cluster_providers_aws, :kubernetes_version, 30 + end + + def down + if column_exists?(:cluster_providers_aws, :kubernetes_version) + remove_column :cluster_providers_aws, :kubernetes_version + end + end +end diff --git a/db/migrate/20200818092401_add_checksum_to_build_chunk.rb b/db/migrate/20200818092401_add_checksum_to_build_chunk.rb new file mode 100644 index 00000000000..c1c968571a2 --- /dev/null +++ b/db/migrate/20200818092401_add_checksum_to_build_chunk.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddChecksumToBuildChunk < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column :ci_build_trace_chunks, :checksum, :binary + end +end diff --git a/db/migrate/20200818171229_add_package_max_file_size_to_plan_limits.rb b/db/migrate/20200818171229_add_package_max_file_size_to_plan_limits.rb new file mode 100644 index 00000000000..5343da6ed5e --- /dev/null +++ b/db/migrate/20200818171229_add_package_max_file_size_to_plan_limits.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +class AddPackageMaxFileSizeToPlanLimits < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column(:plan_limits, :conan_max_file_size, :bigint, default: 50.megabytes, null: false) + add_column(:plan_limits, :maven_max_file_size, :bigint, default: 50.megabytes, null: false) + add_column(:plan_limits, :npm_max_file_size, :bigint, default: 50.megabytes, null: false) + add_column(:plan_limits, :nuget_max_file_size, :bigint, default: 50.megabytes, null: false) + add_column(:plan_limits, :pypi_max_file_size, :bigint, default: 50.megabytes, null: false) + end +end diff --git a/db/migrate/20200819192143_add_emails_user_id_foreign_key.rb b/db/migrate/20200819192143_add_emails_user_id_foreign_key.rb new file mode 100644 index 00000000000..7f00aa6341b --- /dev/null +++ b/db/migrate/20200819192143_add_emails_user_id_foreign_key.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +class AddEmailsUserIdForeignKey < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + CONSTRAINT_NAME = 'fk_emails_user_id' + + def up + with_lock_retries do + add_foreign_key :emails, :users, on_delete: :cascade, validate: false, name: CONSTRAINT_NAME + end + end + + def down + with_lock_retries do + remove_foreign_key_if_exists :emails, column: :user_id, name: CONSTRAINT_NAME + end + end +end diff --git a/db/migrate/20200820105408_add_index_to_container_scanning_findings.rb b/db/migrate/20200820105408_add_index_to_container_scanning_findings.rb new file mode 100644 index 00000000000..834e11e3d6e --- /dev/null +++ b/db/migrate/20200820105408_add_index_to_container_scanning_findings.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +class AddIndexToContainerScanningFindings < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX_NAME = 'idx_container_scanning_findings' + + disable_ddl_transaction! + + def up + add_concurrent_index(:vulnerability_occurrences, :id, + where: "report_type = 2", + name: INDEX_NAME) + end + + def down + remove_concurrent_index_by_name(:project_registry, INDEX_NAME) + end +end diff --git a/db/migrate/20200820130839_add_auto_close_incident_to_project_incident_management_settings.rb b/db/migrate/20200820130839_add_auto_close_incident_to_project_incident_management_settings.rb new file mode 100644 index 00000000000..01aafa6d988 --- /dev/null +++ b/db/migrate/20200820130839_add_auto_close_incident_to_project_incident_management_settings.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +class AddAutoCloseIncidentToProjectIncidentManagementSettings < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def up + add_column :project_incident_management_settings, :auto_close_incident, :boolean, default: true, null: false + end + + def down + remove_column :project_incident_management_settings, :auto_close_incident + end +end diff --git a/db/migrate/20200820204041_create_ci_platform_metrics.rb b/db/migrate/20200820204041_create_ci_platform_metrics.rb new file mode 100644 index 00000000000..27a5a3dc8eb --- /dev/null +++ b/db/migrate/20200820204041_create_ci_platform_metrics.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +class CreateCiPlatformMetrics < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + CI_VARIABLES_KEY_INDEX_NAME = "index_ci_variables_on_key" + + disable_ddl_transaction! + + def up + unless table_exists?(:ci_platform_metrics) + create_table :ci_platform_metrics do |t| + t.datetime_with_timezone :recorded_at, null: false + t.text :platform_target, null: false + t.integer :count, null: false + end + end + + add_text_limit :ci_platform_metrics, :platform_target, 255 + add_concurrent_index :ci_variables, :key, name: CI_VARIABLES_KEY_INDEX_NAME + end + + def down + if table_exists?(:ci_platform_metrics) + drop_table :ci_platform_metrics + end + + remove_concurrent_index :ci_variables, :key, name: CI_VARIABLES_KEY_INDEX_NAME + end +end diff --git a/db/migrate/20200821034419_add_unique_index_for_generic_packages.rb b/db/migrate/20200821034419_add_unique_index_for_generic_packages.rb new file mode 100644 index 00000000000..f0e4749bbb5 --- /dev/null +++ b/db/migrate/20200821034419_add_unique_index_for_generic_packages.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +class AddUniqueIndexForGenericPackages < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + INDEX_NAME = 'index_packages_on_project_id_name_version_unique_when_generic' + PACKAGE_TYPE_GENERIC = 7 + + disable_ddl_transaction! + + def up + add_concurrent_index :packages_packages, [:project_id, :name, :version], unique: true, where: "package_type = #{PACKAGE_TYPE_GENERIC}", name: INDEX_NAME + end + + def down + remove_concurrent_index_by_name(:packages_packages, INDEX_NAME) + end +end diff --git a/db/migrate/20200821194920_create_atlassian_identities.rb b/db/migrate/20200821194920_create_atlassian_identities.rb new file mode 100644 index 00000000000..1aab9ed6381 --- /dev/null +++ b/db/migrate/20200821194920_create_atlassian_identities.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +class CreateAtlassianIdentities < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + unless table_exists?(:atlassian_identities) + with_lock_retries do + create_table :atlassian_identities, id: false do |t| + t.references :user, index: false, foreign_key: { on_delete: :cascade }, null: false, primary_key: true + t.timestamps_with_timezone + t.datetime_with_timezone :expires_at + t.text :extern_uid, null: false, index: { unique: true } + t.binary :encrypted_token + t.binary :encrypted_token_iv + t.binary :encrypted_refresh_token + t.binary :encrypted_refresh_token_iv + end + end + end + + add_text_limit :atlassian_identities, :extern_uid, 255 + + add_check_constraint :atlassian_identities, 'octet_length(encrypted_token) <= 2048', 'atlassian_identities_token_length_constraint' + add_check_constraint :atlassian_identities, 'octet_length(encrypted_token_iv) <= 12', 'atlassian_identities_token_iv_length_constraint' + add_check_constraint :atlassian_identities, 'octet_length(encrypted_refresh_token) <= 512', 'atlassian_identities_refresh_token_length_constraint' + add_check_constraint :atlassian_identities, 'octet_length(encrypted_refresh_token_iv) <= 12', 'atlassian_identities_refresh_token_iv_length_constraint' + end + + def down + with_lock_retries do + drop_table :atlassian_identities + end + end +end diff --git a/db/migrate/20200824045812_add_generic_package_max_file_size_to_plan_limits.rb b/db/migrate/20200824045812_add_generic_package_max_file_size_to_plan_limits.rb new file mode 100644 index 00000000000..eea4f8de7bf --- /dev/null +++ b/db/migrate/20200824045812_add_generic_package_max_file_size_to_plan_limits.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddGenericPackageMaxFileSizeToPlanLimits < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column(:plan_limits, :generic_packages_max_file_size, :bigint, default: 5.gigabytes, null: false) + end +end diff --git a/db/migrate/20200824124623_create_issuable_severities.rb b/db/migrate/20200824124623_create_issuable_severities.rb new file mode 100644 index 00000000000..674a54fc16d --- /dev/null +++ b/db/migrate/20200824124623_create_issuable_severities.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +class CreateIssuableSeverities < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + create_table :issuable_severities do |t| + t.references :issue, index: { unique: true }, null: false, foreign_key: { on_delete: :cascade } + t.integer :severity, null: false, default: 0, limit: 2 # 0 - will stand for unknown + end + end + end + + def down + with_lock_retries do + drop_table :issuable_severities + end + end +end diff --git a/db/migrate/20200825071735_create_merge_request_reviewers.rb b/db/migrate/20200825071735_create_merge_request_reviewers.rb new file mode 100644 index 00000000000..45451476bb0 --- /dev/null +++ b/db/migrate/20200825071735_create_merge_request_reviewers.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +class CreateMergeRequestReviewers < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + create_table :merge_request_reviewers do |t| + t.bigint :user_id, null: false + t.bigint :merge_request_id, null: false + t.datetime_with_timezone :created_at, null: false + end + + add_index :merge_request_reviewers, [:merge_request_id, :user_id], unique: true + add_index :merge_request_reviewers, :user_id + end + + def down + drop_table :merge_request_reviewers + end +end diff --git a/db/migrate/20200825081025_boards_epic_user_preferences.rb b/db/migrate/20200825081025_boards_epic_user_preferences.rb new file mode 100644 index 00000000000..fc7454a6a9a --- /dev/null +++ b/db/migrate/20200825081025_boards_epic_user_preferences.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class BoardsEpicUserPreferences < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def up + create_table :boards_epic_user_preferences do |t| + t.bigint :board_id, null: false + t.bigint :user_id, null: false + t.bigint :epic_id, null: false + t.boolean :collapsed, default: false, null: false + end + + add_index :boards_epic_user_preferences, :board_id + add_index :boards_epic_user_preferences, :user_id + add_index :boards_epic_user_preferences, :epic_id + add_index :boards_epic_user_preferences, [:board_id, :user_id, :epic_id], unique: true, name: 'index_boards_epic_user_preferences_on_board_user_epic_unique' + end + + def down + drop_table :boards_epic_user_preferences + end +end diff --git a/db/migrate/20200825081035_boards_epic_user_preferences_fk_board.rb b/db/migrate/20200825081035_boards_epic_user_preferences_fk_board.rb new file mode 100644 index 00000000000..eb52cadaecf --- /dev/null +++ b/db/migrate/20200825081035_boards_epic_user_preferences_fk_board.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class BoardsEpicUserPreferencesFkBoard < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_foreign_key :boards_epic_user_preferences, :boards, column: :board_id, on_delete: :cascade # rubocop: disable Migration/AddConcurrentForeignKey + end + end + + def down + with_lock_retries do + remove_foreign_key :boards_epic_user_preferences, column: :board_id + end + end +end diff --git a/db/migrate/20200825081045_boards_epic_user_preferences_fk_user.rb b/db/migrate/20200825081045_boards_epic_user_preferences_fk_user.rb new file mode 100644 index 00000000000..98d0a5b64f6 --- /dev/null +++ b/db/migrate/20200825081045_boards_epic_user_preferences_fk_user.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class BoardsEpicUserPreferencesFkUser < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_foreign_key :boards_epic_user_preferences, :users, column: :user_id, on_delete: :cascade # rubocop: disable Migration/AddConcurrentForeignKey + end + end + + def down + with_lock_retries do + remove_foreign_key :boards_epic_user_preferences, column: :user_id + end + end +end diff --git a/db/migrate/20200825081055_boards_epic_user_preferences_fk_epic.rb b/db/migrate/20200825081055_boards_epic_user_preferences_fk_epic.rb new file mode 100644 index 00000000000..46498f186c4 --- /dev/null +++ b/db/migrate/20200825081055_boards_epic_user_preferences_fk_epic.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class BoardsEpicUserPreferencesFkEpic < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_foreign_key :boards_epic_user_preferences, :epics, column: :epic_id, on_delete: :cascade # rubocop: disable Migration/AddConcurrentForeignKey + end + end + + def down + with_lock_retries do + remove_foreign_key :boards_epic_user_preferences, column: :epic_id + end + end +end diff --git a/db/migrate/20200825084819_create_security_findings_table.rb b/db/migrate/20200825084819_create_security_findings_table.rb new file mode 100644 index 00000000000..d44b4671e2f --- /dev/null +++ b/db/migrate/20200825084819_create_security_findings_table.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +class CreateSecurityFindingsTable < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + unless table_exists?(:security_findings) + create_table :security_findings do |t| + t.references :scan, null: false + t.references :scanner, null: false + t.integer :severity, limit: 2, index: true, null: false + t.integer :confidence, limit: 2, index: true, null: false + t.text :project_fingerprint, index: true, null: false + end + end + + add_text_limit :security_findings, :project_fingerprint, 40 + end + + def down + drop_table :security_findings + end +end diff --git a/db/migrate/20200825154237_update_package_file_size_plan_limits_defaults.rb b/db/migrate/20200825154237_update_package_file_size_plan_limits_defaults.rb new file mode 100644 index 00000000000..b71e2a86f4a --- /dev/null +++ b/db/migrate/20200825154237_update_package_file_size_plan_limits_defaults.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +class UpdatePackageFileSizePlanLimitsDefaults < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + change_column_default(:plan_limits, :maven_max_file_size, from: 50.megabytes, to: 3.gigabytes) + change_column_default(:plan_limits, :conan_max_file_size, from: 50.megabytes, to: 3.gigabytes) + change_column_default(:plan_limits, :nuget_max_file_size, from: 50.megabytes, to: 500.megabytes) + change_column_default(:plan_limits, :npm_max_file_size, from: 50.megabytes, to: 500.megabytes) + change_column_default(:plan_limits, :pypi_max_file_size, from: 50.megabytes, to: 3.gigabytes) + end +end diff --git a/db/migrate/20200825180050_add_pipeline_artifacts_size_to_root_storage_statistics.rb b/db/migrate/20200825180050_add_pipeline_artifacts_size_to_root_storage_statistics.rb new file mode 100644 index 00000000000..069480c6887 --- /dev/null +++ b/db/migrate/20200825180050_add_pipeline_artifacts_size_to_root_storage_statistics.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddPipelineArtifactsSizeToRootStorageStatistics < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_column :namespace_root_storage_statistics, :pipeline_artifacts_size, :bigint, default: 0, null: false + end + end + + def down + with_lock_retries do + remove_column :namespace_root_storage_statistics, :pipeline_artifacts_size, :bigint, default: 0, null: false + end + end +end diff --git a/db/migrate/20200826073745_add_default_to_ci_pipeline_locked.rb b/db/migrate/20200826073745_add_default_to_ci_pipeline_locked.rb new file mode 100644 index 00000000000..e73963043d5 --- /dev/null +++ b/db/migrate/20200826073745_add_default_to_ci_pipeline_locked.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class AddDefaultToCiPipelineLocked < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + # Set this constant to true if this migration requires downtime. + DOWNTIME = false + + ARTIFACTS_LOCKED = 1 + UNLOCKED = 0 + + def up + with_lock_retries do + change_column_default :ci_pipelines, :locked, ARTIFACTS_LOCKED + end + end + + def down + with_lock_retries do + change_column_default :ci_pipelines, :locked, UNLOCKED + end + end +end diff --git a/db/migrate/20200826092324_add_projects_index_on_import_type_creator_id_created_at.rb b/db/migrate/20200826092324_add_projects_index_on_import_type_creator_id_created_at.rb new file mode 100644 index 00000000000..94d2e5cb4ab --- /dev/null +++ b/db/migrate/20200826092324_add_projects_index_on_import_type_creator_id_created_at.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class AddProjectsIndexOnImportTypeCreatorIdCreatedAt < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX_NAME = 'index_imported_projects_on_import_type_creator_id_created_at'.freeze + + disable_ddl_transaction! + + def up + add_concurrent_index :projects, + [:import_type, :creator_id, :created_at], + where: 'import_type IS NOT NULL', + name: INDEX_NAME + end + + def down + remove_concurrent_index_by_name :projects, INDEX_NAME + end +end diff --git a/db/migrate/20200826212800_add_index_on_merge_request_id_and_rule_type_to_approval_merge_request_rule.rb b/db/migrate/20200826212800_add_index_on_merge_request_id_and_rule_type_to_approval_merge_request_rule.rb new file mode 100644 index 00000000000..a40e09648ef --- /dev/null +++ b/db/migrate/20200826212800_add_index_on_merge_request_id_and_rule_type_to_approval_merge_request_rule.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class AddIndexOnMergeRequestIdAndRuleTypeToApprovalMergeRequestRule < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + INDEX_NAME = "approval_mr_rule_index_merge_request_id" + + def up + add_concurrent_index( + :approval_merge_request_rules, + :merge_request_id, + name: INDEX_NAME + ) + end + + def down + remove_concurrent_index_by_name :approval_merge_request_rules, INDEX_NAME + end +end diff --git a/db/migrate/20200827005322_add_creator_id_to_packages.rb b/db/migrate/20200827005322_add_creator_id_to_packages.rb new file mode 100644 index 00000000000..ecd73ff8785 --- /dev/null +++ b/db/migrate/20200827005322_add_creator_id_to_packages.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddCreatorIdToPackages < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column(:packages_packages, :creator_id, :integer) + end +end diff --git a/db/migrate/20200827060911_add_merge_request_foreign_key_to_merge_request_reviewers.rb b/db/migrate/20200827060911_add_merge_request_foreign_key_to_merge_request_reviewers.rb new file mode 100644 index 00000000000..dc3356375fd --- /dev/null +++ b/db/migrate/20200827060911_add_merge_request_foreign_key_to_merge_request_reviewers.rb @@ -0,0 +1,22 @@ +# 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 AddMergeRequestForeignKeyToMergeRequestReviewers < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_foreign_key :merge_request_reviewers, :merge_requests, column: :merge_request_id, on_delete: :cascade # rubocop:disable Migration/AddConcurrentForeignKey + end + end + + def down + with_lock_retries do + remove_foreign_key :merge_request_reviewers, column: :merge_request_id + end + end +end diff --git a/db/migrate/20200827060932_add_user_foreign_key_to_merge_request_reviewers.rb b/db/migrate/20200827060932_add_user_foreign_key_to_merge_request_reviewers.rb new file mode 100644 index 00000000000..d6c6985a668 --- /dev/null +++ b/db/migrate/20200827060932_add_user_foreign_key_to_merge_request_reviewers.rb @@ -0,0 +1,22 @@ +# 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 AddUserForeignKeyToMergeRequestReviewers < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_foreign_key :merge_request_reviewers, :users, column: :user_id, on_delete: :cascade # rubocop:disable Migration/AddConcurrentForeignKey + end + end + + def down + with_lock_retries do + remove_foreign_key :merge_request_reviewers, column: :user_id + end + end +end diff --git a/db/migrate/20200827085101_add_seats_currently_in_use_in_gitlab_subscriptions.rb b/db/migrate/20200827085101_add_seats_currently_in_use_in_gitlab_subscriptions.rb new file mode 100644 index 00000000000..83f2d573b6d --- /dev/null +++ b/db/migrate/20200827085101_add_seats_currently_in_use_in_gitlab_subscriptions.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class AddSeatsCurrentlyInUseInGitlabSubscriptions < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_column :gitlab_subscriptions, :seats_in_use, :integer, default: 0, null: false + add_column :gitlab_subscriptions, :seats_owed, :integer, default: 0, null: false + end + end + + def down + with_lock_retries do + remove_column :gitlab_subscriptions, :seats_in_use + remove_column :gitlab_subscriptions, :seats_owed + end + end +end diff --git a/db/migrate/20200827102234_add_ci_job_artifact_id_to_pages_metadata.rb b/db/migrate/20200827102234_add_ci_job_artifact_id_to_pages_metadata.rb new file mode 100644 index 00000000000..4109c512f14 --- /dev/null +++ b/db/migrate/20200827102234_add_ci_job_artifact_id_to_pages_metadata.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddCiJobArtifactIdToPagesMetadata < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column(:project_pages_metadata, :artifacts_archive_id, :bigint) + end +end diff --git a/db/migrate/20200827104432_add_foreign_key_to_artifacts_archive_id_in_pages_metadata.rb b/db/migrate/20200827104432_add_foreign_key_to_artifacts_archive_id_in_pages_metadata.rb new file mode 100644 index 00000000000..90451ad597a --- /dev/null +++ b/db/migrate/20200827104432_add_foreign_key_to_artifacts_archive_id_in_pages_metadata.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class AddForeignKeyToArtifactsArchiveIdInPagesMetadata < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + INDEX_NAME = "index_project_pages_metadata_on_artifacts_archive_id" + + disable_ddl_transaction! + + def up + add_concurrent_index(:project_pages_metadata, :artifacts_archive_id, name: INDEX_NAME) + add_concurrent_foreign_key(:project_pages_metadata, :ci_job_artifacts, column: :artifacts_archive_id, on_delete: :nullify) + end + + def down + remove_foreign_key_if_exists(:project_pages_metadata, :ci_job_artifacts, column: :artifacts_archive_id) + remove_concurrent_index_by_name(:project_pages_metadata, INDEX_NAME) + end +end diff --git a/db/migrate/20200827114902_create_analytics_instance_statistics_measurements.rb b/db/migrate/20200827114902_create_analytics_instance_statistics_measurements.rb new file mode 100644 index 00000000000..f8584d4b9f6 --- /dev/null +++ b/db/migrate/20200827114902_create_analytics_instance_statistics_measurements.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class CreateAnalyticsInstanceStatisticsMeasurements < ActiveRecord::Migration[6.0] + DOWNTIME = false + UNIQUE_INDEX_NAME = 'index_on_instance_statistics_recorded_at_and_identifier' + + def change + create_table :analytics_instance_statistics_measurements do |t| + t.bigint :count, null: false + t.datetime_with_timezone :recorded_at, null: false + t.integer :identifier, limit: 2, null: false + end + + add_index :analytics_instance_statistics_measurements, [:identifier, :recorded_at], unique: true, name: UNIQUE_INDEX_NAME + end +end diff --git a/db/migrate/20200827142811_create_merge_request_diff_details.rb b/db/migrate/20200827142811_create_merge_request_diff_details.rb new file mode 100644 index 00000000000..29b070bc675 --- /dev/null +++ b/db/migrate/20200827142811_create_merge_request_diff_details.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +class CreateMergeRequestDiffDetails < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + unless table_exists?(:merge_request_diff_details) + with_lock_retries do + create_table :merge_request_diff_details, id: false do |t| + t.references :merge_request_diff, primary_key: true, null: false, foreign_key: { on_delete: :cascade } + t.datetime_with_timezone :verification_retry_at + t.datetime_with_timezone :verified_at + t.integer :verification_retry_count, limit: 2 + t.binary :verification_checksum, using: 'verification_checksum::bytea' + t.text :verification_failure + end + end + end + + add_text_limit :merge_request_diff_details, :verification_failure, 255 + end + + def down + drop_table :merge_request_diff_details + end +end diff --git a/db/migrate/20200827150057_add_index_expire_at_to_pipeline_artifacts.rb b/db/migrate/20200827150057_add_index_expire_at_to_pipeline_artifacts.rb new file mode 100644 index 00000000000..0a1943aa58b --- /dev/null +++ b/db/migrate/20200827150057_add_index_expire_at_to_pipeline_artifacts.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class AddIndexExpireAtToPipelineArtifacts < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX_NAME = 'index_ci_pipeline_artifacts_on_expire_at' + + disable_ddl_transaction! + + def up + add_concurrent_index :ci_pipeline_artifacts, :expire_at, name: INDEX_NAME + end + + def down + remove_concurrent_index_by_name(:ci_pipeline_artifacts, INDEX_NAME) + end +end diff --git a/db/migrate/20200828155134_add_foreign_key_on_scan_id_to_security_scans.rb b/db/migrate/20200828155134_add_foreign_key_on_scan_id_to_security_scans.rb new file mode 100644 index 00000000000..612bd79a282 --- /dev/null +++ b/db/migrate/20200828155134_add_foreign_key_on_scan_id_to_security_scans.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddForeignKeyOnScanIdToSecurityScans < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_foreign_key :security_findings, :security_scans, column: :scan_id, on_delete: :cascade # rubocop:disable Migration/AddConcurrentForeignKey + end + end + + def down + with_lock_retries do + remove_foreign_key :security_findings, column: :scan_id + end + end +end diff --git a/db/migrate/20200828155205_add_foreign_key_on_scanner_id_to_vulnerability_scanners.rb b/db/migrate/20200828155205_add_foreign_key_on_scanner_id_to_vulnerability_scanners.rb new file mode 100644 index 00000000000..eb3e878c8be --- /dev/null +++ b/db/migrate/20200828155205_add_foreign_key_on_scanner_id_to_vulnerability_scanners.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddForeignKeyOnScannerIdToVulnerabilityScanners < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_foreign_key :security_findings, :vulnerability_scanners, column: :scanner_id, on_delete: :cascade # rubocop:disable Migration/AddConcurrentForeignKey + end + end + + def down + with_lock_retries do + remove_foreign_key :security_findings, column: :scanner_id + end + end +end diff --git a/db/migrate/20200830201204_add_index_to_package_creator.rb b/db/migrate/20200830201204_add_index_to_package_creator.rb new file mode 100644 index 00000000000..fbc8bbade94 --- /dev/null +++ b/db/migrate/20200830201204_add_index_to_package_creator.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class AddIndexToPackageCreator < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + INDEX_NAME = 'index_packages_packages_on_creator_id' + + def up + add_concurrent_index :packages_packages, :creator_id, name: INDEX_NAME + add_concurrent_foreign_key(:packages_packages, :users, column: :creator_id, on_delete: :nullify) + end + + def down + remove_foreign_key_if_exists(:packages_packages, :users, column: :creator_id) + remove_concurrent_index_by_name(:packages_packages, INDEX_NAME) + end +end diff --git a/db/migrate/20200901203055_add_id_created_at_index_to_packages.rb b/db/migrate/20200901203055_add_id_created_at_index_to_packages.rb new file mode 100644 index 00000000000..d92309e3fef --- /dev/null +++ b/db/migrate/20200901203055_add_id_created_at_index_to_packages.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddIdCreatedAtIndexToPackages < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + INDEX_NAME = 'index_packages_packages_on_id_and_created_at' + + def up + add_concurrent_index :packages_packages, [:id, :created_at], name: INDEX_NAME + end + + def down + remove_concurrent_index_by_name(:packages_packages, INDEX_NAME) + end +end diff --git a/db/migrate/20200901214416_change_pypi_python_version_type.rb b/db/migrate/20200901214416_change_pypi_python_version_type.rb new file mode 100644 index 00000000000..b670b2129c2 --- /dev/null +++ b/db/migrate/20200901214416_change_pypi_python_version_type.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class ChangePypiPythonVersionType < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + change_column_type_concurrently :packages_pypi_metadata, :required_python, :text, batch_column_name: :package_id # rubocop:disable Migration/AddLimitToTextColumns + end + + def down + cleanup_concurrent_column_type_change(:packages_pypi_metadata, :required_python) + change_column_null :packages_pypi_metadata, :required_python, false + end +end diff --git a/db/migrate/20200902135542_update_package_max_file_size_plan_limits.rb b/db/migrate/20200902135542_update_package_max_file_size_plan_limits.rb new file mode 100644 index 00000000000..0ba8f12f89e --- /dev/null +++ b/db/migrate/20200902135542_update_package_max_file_size_plan_limits.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +class UpdatePackageMaxFileSizePlanLimits < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + # this is intended to be a no-op for GitLab.com + # 5GB is the value for these columns as of 2020-09-02 + if Gitlab.com? + update_all_plan_limits('conan_max_file_size', 5.gigabytes) + update_all_plan_limits('maven_max_file_size', 5.gigabytes) + update_all_plan_limits('npm_max_file_size', 5.gigabytes) + update_all_plan_limits('nuget_max_file_size', 5.gigabytes) + update_all_plan_limits('pypi_max_file_size', 5.gigabytes) + else + update_all_plan_limits('conan_max_file_size', 3.gigabytes) + update_all_plan_limits('maven_max_file_size', 3.gigabytes) + update_all_plan_limits('npm_max_file_size', 500.megabytes) + update_all_plan_limits('nuget_max_file_size', 500.megabytes) + update_all_plan_limits('pypi_max_file_size', 3.gigabytes) + end + end + + def down + update_all_plan_limits('conan_max_file_size', 50.megabytes) + update_all_plan_limits('maven_max_file_size', 50.megabytes) + update_all_plan_limits('npm_max_file_size', 50.megabytes) + update_all_plan_limits('nuget_max_file_size', 50.megabytes) + update_all_plan_limits('pypi_max_file_size', 50.megabytes) + end + + private + + def update_all_plan_limits(limit_name, limit_value) + limit_name_quoted = quote_column_name(limit_name) + limit_value_quoted = quote(limit_value) + + execute <<~SQL + UPDATE plan_limits + SET #{limit_name_quoted} = #{limit_value_quoted}; + SQL + end +end diff --git a/db/migrate/20200903054946_add_elasticsearch_client_timeout.rb b/db/migrate/20200903054946_add_elasticsearch_client_timeout.rb new file mode 100644 index 00000000000..93e70461641 --- /dev/null +++ b/db/migrate/20200903054946_add_elasticsearch_client_timeout.rb @@ -0,0 +1,12 @@ +# 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 AddElasticsearchClientTimeout < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column :application_settings, :elasticsearch_client_request_timeout, :integer, null: false, default: 0 + end +end diff --git a/db/migrate/20200903092241_add_index_to_resource_iteration_events_add_events.rb b/db/migrate/20200903092241_add_index_to_resource_iteration_events_add_events.rb new file mode 100644 index 00000000000..be530f1f9b5 --- /dev/null +++ b/db/migrate/20200903092241_add_index_to_resource_iteration_events_add_events.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class AddIndexToResourceIterationEventsAddEvents < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + INDEX_NAME = 'index_resource_iteration_events_on_iteration_id_and_add_action' + ADD_ACTION = '1' + + def up + # Index add iteration events + add_concurrent_index :resource_iteration_events, :iteration_id, where: "action = #{ADD_ACTION}", name: INDEX_NAME + end + + def down + remove_concurrent_index :resource_iteration_events, :iteration_id, name: INDEX_NAME + end +end diff --git a/db/migrate/20200904092131_add_merge_ref_sha_to_merge_requests.rb b/db/migrate/20200904092131_add_merge_ref_sha_to_merge_requests.rb new file mode 100644 index 00000000000..a490bc8fe07 --- /dev/null +++ b/db/migrate/20200904092131_add_merge_ref_sha_to_merge_requests.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddMergeRefShaToMergeRequests < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_column :merge_requests, :merge_ref_sha, :binary + end + end + + def down + with_lock_retries do + remove_column :merge_requests, :merge_ref_sha + end + end +end diff --git a/db/migrate/20200904131544_create_ci_build_pending_states.rb b/db/migrate/20200904131544_create_ci_build_pending_states.rb new file mode 100644 index 00000000000..2c21ce3ce32 --- /dev/null +++ b/db/migrate/20200904131544_create_ci_build_pending_states.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +class CreateCiBuildPendingStates < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + create_table :ci_build_pending_states do |t| + t.timestamps_with_timezone + t.references :build, index: { unique: true }, null: false, foreign_key: { to_table: :ci_builds, on_delete: :cascade }, type: :bigint + t.integer :state + t.integer :failure_reason + t.binary :trace_checksum + end + end + end + + def down + with_lock_retries do + drop_table :ci_build_pending_states + end + end +end diff --git a/db/migrate/20200907021256_create_dast_site_tokens.rb b/db/migrate/20200907021256_create_dast_site_tokens.rb new file mode 100644 index 00000000000..a8e221aef69 --- /dev/null +++ b/db/migrate/20200907021256_create_dast_site_tokens.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +class CreateDastSiteTokens < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + unless table_exists?(:dast_site_tokens) + with_lock_retries do + create_table :dast_site_tokens do |t| + t.references :project, foreign_key: { on_delete: :cascade }, null: false, index: true + + t.timestamps_with_timezone null: false + t.datetime_with_timezone :expired_at + + t.text :token, null: false, unique: true + t.text :url, null: false + end + end + end + + add_text_limit :dast_site_tokens, :token, 255 + add_text_limit :dast_site_tokens, :url, 255 + end + + def down + with_lock_retries do + drop_table :dast_site_tokens + end + end +end diff --git a/db/migrate/20200907062101_create_dast_site_validations.rb b/db/migrate/20200907062101_create_dast_site_validations.rb new file mode 100644 index 00000000000..5ff2084d693 --- /dev/null +++ b/db/migrate/20200907062101_create_dast_site_validations.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +class CreateDastSiteValidations < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + unless table_exists?(:dast_site_validations) + with_lock_retries do + create_table :dast_site_validations do |t| + t.references :dast_site_token, foreign_key: { on_delete: :cascade }, null: false, index: true + + t.timestamps_with_timezone null: false + t.datetime_with_timezone :validation_started_at + t.datetime_with_timezone :validation_passed_at + t.datetime_with_timezone :validation_failed_at + t.datetime_with_timezone :validation_last_retried_at + + t.integer :validation_strategy, null: false, limit: 2 + + t.text :url_base, null: false + t.text :url_path, null: false + end + end + end + + add_concurrent_index :dast_site_validations, :url_base + add_text_limit :dast_site_validations, :url_base, 255 + add_text_limit :dast_site_validations, :url_path, 255 + end + + def down + with_lock_retries do + drop_table :dast_site_validations + end + end +end diff --git a/db/migrate/20200908033805_add_dast_site_validation_id_to_dast_site.rb b/db/migrate/20200908033805_add_dast_site_validation_id_to_dast_site.rb new file mode 100644 index 00000000000..3ac86fb1d9e --- /dev/null +++ b/db/migrate/20200908033805_add_dast_site_validation_id_to_dast_site.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +class AddDastSiteValidationIdToDastSite < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + TABLE_NAME = :dast_sites + RELATION_NAME = :dast_site_validations + FK_NAME = :dast_site_validation_id + INDEX_NAME = "index_dast_sites_on_#{FK_NAME}" + + disable_ddl_transaction! + + def up + unless column_exists?(TABLE_NAME, FK_NAME) + with_lock_retries do + add_column TABLE_NAME, FK_NAME, :bigint + end + end + + add_concurrent_index TABLE_NAME, FK_NAME, name: INDEX_NAME + add_concurrent_foreign_key TABLE_NAME, RELATION_NAME, column: FK_NAME, on_delete: :nullify + end + + def down + remove_foreign_key_if_exists TABLE_NAME, RELATION_NAME + remove_concurrent_index_by_name TABLE_NAME, INDEX_NAME + + with_lock_retries do + remove_column TABLE_NAME, FK_NAME + end + end +end diff --git a/db/migrate/20200908100053_create_authentication_events.rb b/db/migrate/20200908100053_create_authentication_events.rb new file mode 100644 index 00000000000..2ea9f4e24af --- /dev/null +++ b/db/migrate/20200908100053_create_authentication_events.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +class CreateAuthenticationEvents < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + unless table_exists?(:authentication_events) + with_lock_retries do + create_table :authentication_events do |t| + t.datetime_with_timezone :created_at, null: false + t.references :user, foreign_key: { on_delete: :nullify }, index: true + t.integer :result, limit: 2, null: false + t.inet :ip_address + t.text :provider, null: false, index: true + t.text :user_name, null: false + end + end + end + + add_text_limit :authentication_events, :provider, 64 + add_text_limit :authentication_events, :user_name, 255 + end + + def down + with_lock_retries do + drop_table :authentication_events + end + end +end diff --git a/db/migrate/20200908183231_add_check_positive_constraint_to_ci_platform_metrics.rb b/db/migrate/20200908183231_add_check_positive_constraint_to_ci_platform_metrics.rb new file mode 100644 index 00000000000..8593e03b5d8 --- /dev/null +++ b/db/migrate/20200908183231_add_check_positive_constraint_to_ci_platform_metrics.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddCheckPositiveConstraintToCiPlatformMetrics < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + CONSTRAINT_NAME = 'ci_platform_metrics_check_count_positive' + + def up + add_check_constraint :ci_platform_metrics, 'count > 0', CONSTRAINT_NAME + end + + def down + remove_check_constraint :ci_platform_metrics, CONSTRAINT_NAME + end +end diff --git a/db/migrate/20200911120132_create_pages_deployments.rb b/db/migrate/20200911120132_create_pages_deployments.rb new file mode 100644 index 00000000000..25327a76900 --- /dev/null +++ b/db/migrate/20200911120132_create_pages_deployments.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +class CreatePagesDeployments < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + create_table :pages_deployments, if_not_exists: true do |t| + t.timestamps_with_timezone + + t.bigint :project_id, index: true, null: false + t.bigint :ci_build_id, index: true + + t.integer :file_store, null: false, limit: 2 + t.integer :size, null: false + t.text :file, null: false + end + + add_text_limit :pages_deployments, :file, 255 + end + + def down + drop_table :pages_deployments + end +end diff --git a/db/migrate/20200911121027_add_pages_deployment_project_foreign_key.rb b/db/migrate/20200911121027_add_pages_deployment_project_foreign_key.rb new file mode 100644 index 00000000000..70418881c4f --- /dev/null +++ b/db/migrate/20200911121027_add_pages_deployment_project_foreign_key.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddPagesDeploymentProjectForeignKey < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_foreign_key :pages_deployments, :projects, column: :project_id, on_delete: :cascade # rubocop:disable Migration/AddConcurrentForeignKey + end + end + + def down + with_lock_retries do + remove_foreign_key :pages_deployments, column: :project_id + end + end +end diff --git a/db/migrate/20200911121048_add_pages_deployment_ci_build_foreign_key.rb b/db/migrate/20200911121048_add_pages_deployment_ci_build_foreign_key.rb new file mode 100644 index 00000000000..ece721d88d5 --- /dev/null +++ b/db/migrate/20200911121048_add_pages_deployment_ci_build_foreign_key.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddPagesDeploymentCiBuildForeignKey < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + with_lock_retries do + add_foreign_key :pages_deployments, :ci_builds, column: :ci_build_id, on_delete: :nullify # rubocop:disable Migration/AddConcurrentForeignKey + end + end + + def down + with_lock_retries do + remove_foreign_key :pages_deployments, column: :ci_build_id + end + end +end diff --git a/db/migrate/20200914091326_change_build_pending_state_enums.rb b/db/migrate/20200914091326_change_build_pending_state_enums.rb new file mode 100644 index 00000000000..dadb15e8844 --- /dev/null +++ b/db/migrate/20200914091326_change_build_pending_state_enums.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class ChangeBuildPendingStateEnums < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def up + change_column :ci_build_pending_states, :state, :integer, limit: 2 + change_column :ci_build_pending_states, :failure_reason, :integer, limit: 2 + end + + def down + change_column :ci_build_pending_states, :state, :integer + change_column :ci_build_pending_states, :failure_reason, :integer + end +end diff --git a/db/migrate/20200914104642_modify_merge_request_api_index.rb b/db/migrate/20200914104642_modify_merge_request_api_index.rb new file mode 100644 index 00000000000..c21404a10c2 --- /dev/null +++ b/db/migrate/20200914104642_modify_merge_request_api_index.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 ModifyMergeRequestApiIndex < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_index :merge_requests, [:target_project_id, :created_at, :id], name: :index_merge_requests_on_target_project_id_and_created_at_and_id + end + + def down + remove_concurrent_index :merge_requests, [:target_project_id, :created_at, :id], name: :index_merge_requests_on_target_project_id_and_created_at_and_id + end +end diff --git a/db/migrate/20200914105202_remove_old_merge_request_api_index.rb b/db/migrate/20200914105202_remove_old_merge_request_api_index.rb new file mode 100644 index 00000000000..826833dbfb2 --- /dev/null +++ b/db/migrate/20200914105202_remove_old_merge_request_api_index.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class RemoveOldMergeRequestApiIndex < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + remove_concurrent_index :merge_requests, [:target_project_id, :created_at], name: :index_merge_requests_target_project_id_created_at + end + + def down + add_concurrent_index :merge_requests, [:target_project_id, :created_at], name: :index_merge_requests_target_project_id_created_at + end +end diff --git a/db/migrate/20200914155135_add_deduplicated_flag_into_security_findings_table.rb b/db/migrate/20200914155135_add_deduplicated_flag_into_security_findings_table.rb new file mode 100644 index 00000000000..f403c2d9a07 --- /dev/null +++ b/db/migrate/20200914155135_add_deduplicated_flag_into_security_findings_table.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddDeduplicatedFlagIntoSecurityFindingsTable < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + add_column :security_findings, :deduplicated, :boolean, default: false, null: false + end +end diff --git a/db/migrate/20200914183227_add_index_on_deduplicated_column_of_security_findings.rb b/db/migrate/20200914183227_add_index_on_deduplicated_column_of_security_findings.rb new file mode 100644 index 00000000000..1d0f656df4d --- /dev/null +++ b/db/migrate/20200914183227_add_index_on_deduplicated_column_of_security_findings.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class AddIndexOnDeduplicatedColumnOfSecurityFindings < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX_NAME = 'index_security_findings_on_scan_id_and_deduplicated' + + disable_ddl_transaction! + + def up + add_concurrent_index :security_findings, [:scan_id, :deduplicated], name: INDEX_NAME + end + + def down + remove_concurrent_index_by_name :security_findings, INDEX_NAME + end +end diff --git a/db/migrate/20200914184212_remove_index_on_security_findings_scan_id.rb b/db/migrate/20200914184212_remove_index_on_security_findings_scan_id.rb new file mode 100644 index 00000000000..342dba537d5 --- /dev/null +++ b/db/migrate/20200914184212_remove_index_on_security_findings_scan_id.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class RemoveIndexOnSecurityFindingsScanId < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + INDEX_NAME = 'index_security_findings_on_scan_id' + + disable_ddl_transaction! + + def up + remove_concurrent_index_by_name :security_findings, INDEX_NAME + end + + def down + add_concurrent_index :security_findings, :scan_id, name: INDEX_NAME + end +end diff --git a/db/migrate/20200915152641_add_verification_state_to_terraform_state_version.rb b/db/migrate/20200915152641_add_verification_state_to_terraform_state_version.rb new file mode 100644 index 00000000000..9cc9a702397 --- /dev/null +++ b/db/migrate/20200915152641_add_verification_state_to_terraform_state_version.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class AddVerificationStateToTerraformStateVersion < ActiveRecord::Migration[6.0] + DOWNTIME = false + + def change + change_table(:terraform_state_versions) do |t| + t.integer :verification_retry_count, limit: 2 + t.column :verification_retry_at, :datetime_with_timezone + t.column :verified_at, :datetime_with_timezone + t.binary :verification_checksum, using: 'verification_checksum::bytea' + + # rubocop:disable Migration/AddLimitToTextColumns + t.text :verification_failure + # rubocop:enable Migration/AddLimitToTextColumns + end + end +end diff --git a/db/migrate/20200915164448_add_verification_failure_limit_to_terraform_state_version.rb b/db/migrate/20200915164448_add_verification_failure_limit_to_terraform_state_version.rb new file mode 100644 index 00000000000..810057a5f54 --- /dev/null +++ b/db/migrate/20200915164448_add_verification_failure_limit_to_terraform_state_version.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class AddVerificationFailureLimitToTerraformStateVersion < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + CONSTRAINT_NAME = 'tf_state_versions_verification_failure_text_limit' + + def up + add_text_limit :terraform_state_versions, :verification_failure, 255, constraint_name: CONSTRAINT_NAME + end + + def down + remove_check_constraint(:terraform_state_versions, CONSTRAINT_NAME) + end +end diff --git a/db/migrate/20200915164844_add_verification_failure_index_to_terraform_state_version.rb b/db/migrate/20200915164844_add_verification_failure_index_to_terraform_state_version.rb new file mode 100644 index 00000000000..423484e74bb --- /dev/null +++ b/db/migrate/20200915164844_add_verification_failure_index_to_terraform_state_version.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +class AddVerificationFailureIndexToTerraformStateVersion < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + FAILURE_INDEX_NAME = 'terraform_state_versions_verification_failure_partial' + CHECKSUM_INDEX_NAME = 'terraform_state_versions_verification_checksum_partial' + + disable_ddl_transaction! + + def up + add_concurrent_index :terraform_state_versions, :verification_failure, + where: "(verification_failure IS NOT NULL)", + name: FAILURE_INDEX_NAME + add_concurrent_index :terraform_state_versions, :verification_checksum, + where: "(verification_checksum IS NOT NULL)", + name: CHECKSUM_INDEX_NAME + end + + def down + remove_concurrent_index_by_name :terraform_state_versions, FAILURE_INDEX_NAME + remove_concurrent_index_by_name :terraform_state_versions, CHECKSUM_INDEX_NAME + end +end -- cgit v1.2.3