diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-18 14:14:39 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-18 14:14:39 +0000 |
commit | 1eb82b65c554f21d83447f895a6208905fabe112 (patch) | |
tree | ab12f01b3dc46f11c02afea1e470a78f06ca70c2 /db | |
parent | 4ab54c2233e91f60a80e5b6fa2181e6899fdcc3e (diff) | |
download | gitlab-ce-stable-branch-foss-test.tar.gz |
Add latest changes from gitlab-org/gitlab@12-3-auto-deploy-20190916stable-branch-foss-test
Diffstat (limited to 'db')
12 files changed, 36 insertions, 277 deletions
diff --git a/db/migrate/20190801193427_rename_application_settings_snowplow_collector_uri_column.rb b/db/migrate/20190801193427_rename_application_settings_snowplow_collector_uri_column.rb index a4bd5841a46..fba9849d3eb 100644 --- a/db/migrate/20190801193427_rename_application_settings_snowplow_collector_uri_column.rb +++ b/db/migrate/20190801193427_rename_application_settings_snowplow_collector_uri_column.rb @@ -12,6 +12,6 @@ class RenameApplicationSettingsSnowplowCollectorUriColumn < ActiveRecord::Migrat end def down - cleanup_concurrent_column_rename :application_settings, :snowplow_collector_hostname, :snowplow_collector_uri + undo_rename_column_concurrently :application_settings, :snowplow_collector_uri, :snowplow_collector_hostname end end diff --git a/db/migrate/20190828170945_create_package_metadatum.rb b/db/migrate/20190828170945_create_package_metadatum.rb deleted file mode 100644 index 3047b812e0e..00000000000 --- a/db/migrate/20190828170945_create_package_metadatum.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -class CreatePackageMetadatum < ActiveRecord::Migration[5.2] - include Gitlab::Database::MigrationHelpers - - DOWNTIME = false - - def change - create_table :packages_package_metadata do |t| - t.references :package, index: { unique: true }, null: false, foreign_key: { to_table: :packages_packages, on_delete: :cascade }, type: :integer - t.binary :metadata, null: false - end - end -end diff --git a/db/migrate/20190828172831_create_package_tag.rb b/db/migrate/20190828172831_create_package_tag.rb deleted file mode 100644 index baf0a5cf11b..00000000000 --- a/db/migrate/20190828172831_create_package_tag.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true . - -class CreatePackageTag < ActiveRecord::Migration[5.2] - include Gitlab::Database::MigrationHelpers - - DOWNTIME = false - - def change - create_table :packages_package_tags do |t| - t.references :package, index: true, null: false, foreign_key: { to_table: :packages_packages, on_delete: :cascade }, type: :integer - t.string :name, limit: 255, null: false - end - end -end diff --git a/db/migrate/20190910125852_create_analytics_language_trend_repository_languages.rb b/db/migrate/20190910125852_create_analytics_language_trend_repository_languages.rb deleted file mode 100644 index 07da4c20d55..00000000000 --- a/db/migrate/20190910125852_create_analytics_language_trend_repository_languages.rb +++ /dev/null @@ -1,35 +0,0 @@ -# frozen_string_literal: true - -class CreateAnalyticsLanguageTrendRepositoryLanguages < ActiveRecord::Migration[5.2] - DOWNTIME = false - INDEX_PREFIX = 'analytics_repository_languages_' - - def change - create_table :analytics_language_trend_repository_languages, id: false do |t| - t.integer :file_count, null: false, default: 0 - t.references :programming_language, { - null: false, - foreign_key: { on_delete: :cascade }, - index: false - } - t.references :project, { - null: false, - foreign_key: { on_delete: :cascade }, - index: { name: INDEX_PREFIX + 'on_project_id' } - } - t.integer :loc, null: false, default: 0 - t.integer :bytes, null: false, default: 0 - # Storing percentage (with 2 decimal places), on 2 bytes. - # 50.25% => 5025 - # Max: 100.00% => 10000 (fits smallint: 32767) - t.integer :percentage, limit: 2, null: false, default: 0 - t.date :snapshot_date, null: false - end - - add_index :analytics_language_trend_repository_languages, %I[ - programming_language_id - project_id - snapshot_date - ], name: INDEX_PREFIX + 'unique_index', unique: true - end -end diff --git a/db/migrate/20190910212256_add_any_approver_rule_unique_indexes.rb b/db/migrate/20190910212256_add_any_approver_rule_unique_indexes.rb deleted file mode 100644 index e8f5b853d1d..00000000000 --- a/db/migrate/20190910212256_add_any_approver_rule_unique_indexes.rb +++ /dev/null @@ -1,30 +0,0 @@ -# frozen_string_literal: true - -# See http://doc.gitlab.com/ce/development/migration_style_guide.html -# for more information on how to write migrations for GitLab. - -class AddAnyApproverRuleUniqueIndexes < ActiveRecord::Migration[5.2] - include Gitlab::Database::MigrationHelpers - - DOWNTIME = false - - PROJECT_RULE_UNIQUE_INDEX = 'any_approver_project_rule_type_unique_index' - MERGE_REQUEST_RULE_UNIQUE_INDEX = 'any_approver_merge_request_rule_type_unique_index' - - disable_ddl_transaction! - - def up - add_concurrent_index(:approval_project_rules, [:project_id], - where: "rule_type = 3", - name: PROJECT_RULE_UNIQUE_INDEX, unique: true) - - add_concurrent_index(:approval_merge_request_rules, [:merge_request_id, :rule_type], - where: "rule_type = 4", - name: MERGE_REQUEST_RULE_UNIQUE_INDEX, unique: true) - end - - def down - remove_concurrent_index_by_name(:approval_project_rules, PROJECT_RULE_UNIQUE_INDEX) - remove_concurrent_index_by_name(:approval_merge_request_rules, MERGE_REQUEST_RULE_UNIQUE_INDEX) - end -end diff --git a/db/post_migrate/20190724091326_schedule_productivity_analytics_backfill.rb b/db/post_migrate/20190724091326_schedule_productivity_analytics_backfill.rb new file mode 100644 index 00000000000..3e1c77ae992 --- /dev/null +++ b/db/post_migrate/20190724091326_schedule_productivity_analytics_backfill.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +class ScheduleProductivityAnalyticsBackfill < ActiveRecord::Migration[5.2] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + BATCH_SIZE = 10_000 + INTERVAL = 3.minutes + MIGRATION = 'Gitlab::BackgroundMigration::RecalculateProductivityAnalytics'.freeze + + disable_ddl_transaction! + + def up + return unless Gitlab.ee? + + metrics_model = Class.new(ActiveRecord::Base) do + self.table_name = 'merge_request_metrics' + + include ::EachBatch + end + + scope = metrics_model.where("merged_at >= ?", 3.months.ago) + + queue_background_migration_jobs_by_range_at_intervals(scope, MIGRATION, INTERVAL, batch_size: BATCH_SIZE) + end + + def down + # no-op + end +end diff --git a/db/post_migrate/20190802091750_cleanup_application_settings_snowplow_collector_uri_rename.rb b/db/post_migrate/20190802091750_cleanup_application_settings_snowplow_collector_uri_rename.rb index 768ece925c6..77472585512 100644 --- a/db/post_migrate/20190802091750_cleanup_application_settings_snowplow_collector_uri_rename.rb +++ b/db/post_migrate/20190802091750_cleanup_application_settings_snowplow_collector_uri_rename.rb @@ -12,6 +12,6 @@ class CleanupApplicationSettingsSnowplowCollectorUriRename < ActiveRecord::Migra end def down - rename_column_concurrently :application_settings, :snowplow_collector_hostname, :snowplow_collector_uri + undo_cleanup_concurrent_column_rename :application_settings, :snowplow_collector_uri, :snowplow_collector_hostname end end diff --git a/db/post_migrate/20190827102026_migrate_code_owner_approval_status_to_protected_branches_in_batches.rb b/db/post_migrate/20190827102026_migrate_code_owner_approval_status_to_protected_branches_in_batches.rb deleted file mode 100644 index b109f582909..00000000000 --- a/db/post_migrate/20190827102026_migrate_code_owner_approval_status_to_protected_branches_in_batches.rb +++ /dev/null @@ -1,46 +0,0 @@ -# frozen_string_literal: true - -class MigrateCodeOwnerApprovalStatusToProtectedBranchesInBatches < ActiveRecord::Migration[5.2] - include Gitlab::Database::MigrationHelpers - - disable_ddl_transaction! - - DOWNTIME = false - BATCH_SIZE = 200 - - class Project < ActiveRecord::Base - include EachBatch - - self.table_name = 'projects' - self.inheritance_column = :_type_disabled - - has_many :protected_branches - end - - class ProtectedBranch < ActiveRecord::Base - include EachBatch - - self.table_name = 'protected_branches' - self.inheritance_column = :_type_disabled - - belongs_to :project - end - - def up - add_concurrent_index :projects, :id, name: "temp_active_projects_with_prot_branches", where: 'archived = false and pending_delete = false and merge_requests_require_code_owner_approval = true' - - ProtectedBranch - .joins(:project) - .where(projects: { archived: false, pending_delete: false, merge_requests_require_code_owner_approval: true }) - .each_batch(of: BATCH_SIZE) do |batch| - batch.update_all(code_owner_approval_required: true) - end - - remove_concurrent_index_by_name(:projects, "temp_active_projects_with_prot_branches") - end - - def down - # noop - # - end -end diff --git a/db/post_migrate/20190904205212_remove_id_column_from_intermediate_release_milestones.rb b/db/post_migrate/20190904205212_remove_id_column_from_intermediate_release_milestones.rb deleted file mode 100644 index e4b65d26db6..00000000000 --- a/db/post_migrate/20190904205212_remove_id_column_from_intermediate_release_milestones.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -class RemoveIdColumnFromIntermediateReleaseMilestones < ActiveRecord::Migration[5.2] - DOWNTIME = false - - def change - remove_column :milestone_releases, :id, :bigint - end -end diff --git a/db/post_migrate/20190905091812_schedule_project_any_approval_rule_migration.rb b/db/post_migrate/20190905091812_schedule_project_any_approval_rule_migration.rb deleted file mode 100644 index ef1cb452c26..00000000000 --- a/db/post_migrate/20190905091812_schedule_project_any_approval_rule_migration.rb +++ /dev/null @@ -1,47 +0,0 @@ -# frozen_string_literal: true - -# See http://doc.gitlab.com/ce/development/migration_style_guide.html -# for more information on how to write migrations for GitLab. - -class ScheduleProjectAnyApprovalRuleMigration < ActiveRecord::Migration[5.2] - include Gitlab::Database::MigrationHelpers - - DOWNTIME = false - BATCH_SIZE = 5_000 - MIGRATION = 'PopulateAnyApprovalRuleForProjects' - DELAY_INTERVAL = 8.minutes.to_i - - disable_ddl_transaction! - - class Project < ActiveRecord::Base - include EachBatch - - self.table_name = 'projects' - - scope :with_approvals_before_merge, -> { where('approvals_before_merge <> 0') } - end - - def up - add_concurrent_index :projects, :id, - name: 'tmp_projects_with_approvals_before_merge', - where: 'approvals_before_merge <> 0' - - say "Scheduling `#{MIGRATION}` jobs" - - # We currently have ~43k project records with non-zero approvals_before_merge on GitLab.com. - # This means it'll schedule ~9 jobs (5k projects each) with a 8 minutes gap, - # so this should take ~1 hour for all background migrations to complete. - # - # The approximate expected number of affected rows is: 18k - - queue_background_migration_jobs_by_range_at_intervals( - ScheduleProjectAnyApprovalRuleMigration::Project.with_approvals_before_merge, - MIGRATION, DELAY_INTERVAL, batch_size: BATCH_SIZE) - - remove_concurrent_index_by_name(:projects, 'tmp_projects_with_approvals_before_merge') - end - - def down - # no-op - end -end diff --git a/db/post_migrate/20190905091831_schedule_merge_request_any_approval_rule_migration.rb b/db/post_migrate/20190905091831_schedule_merge_request_any_approval_rule_migration.rb deleted file mode 100644 index 4a8398a9eea..00000000000 --- a/db/post_migrate/20190905091831_schedule_merge_request_any_approval_rule_migration.rb +++ /dev/null @@ -1,47 +0,0 @@ -# frozen_string_literal: true - -# See http://doc.gitlab.com/ce/development/migration_style_guide.html -# for more information on how to write migrations for GitLab. - -class ScheduleMergeRequestAnyApprovalRuleMigration < ActiveRecord::Migration[5.2] - include Gitlab::Database::MigrationHelpers - - DOWNTIME = false - BATCH_SIZE = 5_000 - MIGRATION = 'PopulateAnyApprovalRuleForMergeRequests' - DELAY_INTERVAL = 8.minutes.to_i - - disable_ddl_transaction! - - class MergeRequest < ActiveRecord::Base - include EachBatch - - self.table_name = 'merge_requests' - - scope :with_approvals_before_merge, -> { where('approvals_before_merge <> 0') } - end - - def up - add_concurrent_index :merge_requests, :id, - name: 'tmp_merge_requests_with_approvals_before_merge', - where: 'approvals_before_merge <> 0' - - say "Scheduling `#{MIGRATION}` jobs" - - # We currently have ~440_000 merge request records with non-zero approvals_before_merge on GitLab.com. - # This means it'll schedule ~88 jobs (5k merge requests each) with a 8 minutes gap, - # so this should take ~12 hours for all background migrations to complete. - # - # The approximate expected number of affected rows is: 190k - - queue_background_migration_jobs_by_range_at_intervals( - ScheduleMergeRequestAnyApprovalRuleMigration::MergeRequest.with_approvals_before_merge, - MIGRATION, DELAY_INTERVAL, batch_size: BATCH_SIZE) - - remove_concurrent_index_by_name(:merge_requests, 'tmp_merge_requests_with_approvals_before_merge') - end - - def down - # no-op - end -end diff --git a/db/schema.rb b/db/schema.rb index b821951180a..9ee4026c641 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -81,18 +81,6 @@ ActiveRecord::Schema.define(version: 2019_09_14_223900) do t.index ["start_event_label_id"], name: "index_analytics_ca_project_stages_on_start_event_label_id" end - create_table "analytics_language_trend_repository_languages", id: false, force: :cascade do |t| - t.integer "file_count", default: 0, null: false - t.bigint "programming_language_id", null: false - t.bigint "project_id", null: false - t.integer "loc", default: 0, null: false - t.integer "bytes", default: 0, null: false - t.integer "percentage", limit: 2, default: 0, null: false - t.date "snapshot_date", null: false - t.index ["programming_language_id", "project_id", "snapshot_date"], name: "analytics_repository_languages_unique_index", unique: true - t.index ["project_id"], name: "analytics_repository_languages_on_project_id" - end - create_table "appearances", id: :serial, force: :cascade do |t| t.string "title", null: false t.text "description", null: false @@ -331,9 +319,8 @@ ActiveRecord::Schema.define(version: 2019_09_14_223900) do t.integer "report_type", limit: 2 t.index ["merge_request_id", "code_owner", "name"], name: "approval_rule_name_index_for_code_owners", unique: true, where: "(code_owner = true)" t.index ["merge_request_id", "code_owner"], name: "index_approval_merge_request_rules_1" - t.index ["merge_request_id", "name"], name: "index_approval_rule_name_for_code_owners_rule_type", unique: true, where: "(rule_type = 2)" - t.index ["merge_request_id", "rule_type"], name: "any_approver_merge_request_rule_type_unique_index", unique: true, where: "(rule_type = 4)" - t.index ["merge_request_id"], name: "index_approval_rules_code_owners_rule_type", where: "(rule_type = 2)" + t.index ["merge_request_id", "rule_type", "name"], name: "index_approval_rule_name_for_code_owners_rule_type", unique: true, where: "(rule_type = 2)" + t.index ["merge_request_id", "rule_type"], name: "index_approval_rules_code_owners_rule_type", where: "(rule_type = 2)" end create_table "approval_merge_request_rules_approved_approvers", force: :cascade do |t| @@ -364,7 +351,6 @@ ActiveRecord::Schema.define(version: 2019_09_14_223900) do t.integer "approvals_required", limit: 2, default: 0, null: false t.string "name", null: false t.integer "rule_type", limit: 2, default: 0, null: false - t.index ["project_id"], name: "any_approver_project_rule_type_unique_index", unique: true, where: "(rule_type = 3)" t.index ["project_id"], name: "index_approval_project_rules_on_project_id" t.index ["rule_type"], name: "index_approval_project_rules_on_rule_type" end @@ -2208,7 +2194,7 @@ ActiveRecord::Schema.define(version: 2019_09_14_223900) do t.index ["user_id"], name: "index_merge_trains_on_user_id" end - create_table "milestone_releases", id: false, force: :cascade do |t| + create_table "milestone_releases", force: :cascade do |t| t.bigint "milestone_id", null: false t.bigint "release_id", null: false t.index ["milestone_id", "release_id"], name: "index_miletone_releases_on_milestone_and_release", unique: true @@ -2498,18 +2484,6 @@ ActiveRecord::Schema.define(version: 2019_09_14_223900) do t.index ["package_id", "file_name"], name: "index_packages_package_files_on_package_id_and_file_name" end - create_table "packages_package_metadata", force: :cascade do |t| - t.integer "package_id", null: false - t.binary "metadata", null: false - t.index ["package_id"], name: "index_packages_package_metadata_on_package_id", unique: true - end - - create_table "packages_package_tags", force: :cascade do |t| - t.integer "package_id", null: false - t.string "name", limit: 255, null: false - t.index ["package_id"], name: "index_packages_package_tags_on_package_id" - end - create_table "packages_packages", force: :cascade do |t| t.integer "project_id", null: false t.datetime_with_timezone "created_at", null: false @@ -3786,8 +3760,6 @@ ActiveRecord::Schema.define(version: 2019_09_14_223900) do add_foreign_key "analytics_cycle_analytics_project_stages", "labels", column: "end_event_label_id", on_delete: :cascade add_foreign_key "analytics_cycle_analytics_project_stages", "labels", column: "start_event_label_id", on_delete: :cascade add_foreign_key "analytics_cycle_analytics_project_stages", "projects", on_delete: :cascade - add_foreign_key "analytics_language_trend_repository_languages", "programming_languages", on_delete: :cascade - add_foreign_key "analytics_language_trend_repository_languages", "projects", on_delete: :cascade add_foreign_key "application_settings", "namespaces", column: "custom_project_templates_group_id", on_delete: :nullify add_foreign_key "application_settings", "projects", column: "file_template_project_id", name: "fk_ec757bd087", on_delete: :nullify add_foreign_key "application_settings", "projects", column: "instance_administration_project_id", on_delete: :nullify @@ -4035,8 +4007,6 @@ ActiveRecord::Schema.define(version: 2019_09_14_223900) do add_foreign_key "operations_feature_flags_clients", "projects", on_delete: :cascade add_foreign_key "packages_maven_metadata", "packages_packages", column: "package_id", name: "fk_be88aed360", on_delete: :cascade add_foreign_key "packages_package_files", "packages_packages", column: "package_id", name: "fk_86f0f182f8", on_delete: :cascade - add_foreign_key "packages_package_metadata", "packages_packages", column: "package_id", on_delete: :cascade - add_foreign_key "packages_package_tags", "packages_packages", column: "package_id", on_delete: :cascade add_foreign_key "packages_packages", "projects", on_delete: :cascade add_foreign_key "pages_domain_acme_orders", "pages_domains", on_delete: :cascade add_foreign_key "pages_domains", "projects", name: "fk_ea2f6dfc6f", on_delete: :cascade |