summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-09-18 14:14:39 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-09-18 14:14:39 +0000
commit1eb82b65c554f21d83447f895a6208905fabe112 (patch)
treeab12f01b3dc46f11c02afea1e470a78f06ca70c2 /db
parent4ab54c2233e91f60a80e5b6fa2181e6899fdcc3e (diff)
downloadgitlab-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')
-rw-r--r--db/migrate/20190801193427_rename_application_settings_snowplow_collector_uri_column.rb2
-rw-r--r--db/migrate/20190828170945_create_package_metadatum.rb14
-rw-r--r--db/migrate/20190828172831_create_package_tag.rb14
-rw-r--r--db/migrate/20190910125852_create_analytics_language_trend_repository_languages.rb35
-rw-r--r--db/migrate/20190910212256_add_any_approver_rule_unique_indexes.rb30
-rw-r--r--db/post_migrate/20190724091326_schedule_productivity_analytics_backfill.rb31
-rw-r--r--db/post_migrate/20190802091750_cleanup_application_settings_snowplow_collector_uri_rename.rb2
-rw-r--r--db/post_migrate/20190827102026_migrate_code_owner_approval_status_to_protected_branches_in_batches.rb46
-rw-r--r--db/post_migrate/20190904205212_remove_id_column_from_intermediate_release_milestones.rb9
-rw-r--r--db/post_migrate/20190905091812_schedule_project_any_approval_rule_migration.rb47
-rw-r--r--db/post_migrate/20190905091831_schedule_merge_request_any_approval_rule_migration.rb47
-rw-r--r--db/schema.rb36
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