From 7b384a1f3d2608898318e67d11eea2914889ae81 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 20 Sep 2019 12:11:29 +0000 Subject: Add latest changes from gitlab-org/gitlab@12-3-stable --- ...0358_create_analytics_repository_files_table.rb | 21 ------ ...create_analytics_repository_file_edits_table.rb | 29 -------- .../20190911251732_sync_issuables_state_id.rb | 79 ---------------------- db/schema.rb | 18 ----- 4 files changed, 147 deletions(-) delete mode 100644 db/migrate/20190903150358_create_analytics_repository_files_table.rb delete mode 100644 db/migrate/20190903150435_create_analytics_repository_file_edits_table.rb delete mode 100644 db/post_migrate/20190911251732_sync_issuables_state_id.rb (limited to 'db') diff --git a/db/migrate/20190903150358_create_analytics_repository_files_table.rb b/db/migrate/20190903150358_create_analytics_repository_files_table.rb deleted file mode 100644 index e7c30a149f9..00000000000 --- a/db/migrate/20190903150358_create_analytics_repository_files_table.rb +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true - -class CreateAnalyticsRepositoryFilesTable < ActiveRecord::Migration[5.2] - include Gitlab::Database::MigrationHelpers - - DOWNTIME = false - - def change - create_table :analytics_repository_files do |t| - t.references :project, - index: false, - foreign_key: { on_delete: :cascade }, - null: false - t.string :file_path, - limit: 4096, - null: false - end - - add_index :analytics_repository_files, [:project_id, :file_path], unique: true - end -end diff --git a/db/migrate/20190903150435_create_analytics_repository_file_edits_table.rb b/db/migrate/20190903150435_create_analytics_repository_file_edits_table.rb deleted file mode 100644 index dca3fa1b37d..00000000000 --- a/db/migrate/20190903150435_create_analytics_repository_file_edits_table.rb +++ /dev/null @@ -1,29 +0,0 @@ -# frozen_string_literal: true - -class CreateAnalyticsRepositoryFileEditsTable < ActiveRecord::Migration[5.2] - include Gitlab::Database::MigrationHelpers - - DOWNTIME = false - - def change - create_table :analytics_repository_file_edits do |t| - t.references :project, - index: true, - foreign_key: { on_delete: :cascade }, null: false - t.references :analytics_repository_file, - index: false, - foreign_key: { on_delete: :cascade }, - null: false - t.date :committed_date, - null: false - t.integer :num_edits, - null: false, - default: 0 - end - - add_index :analytics_repository_file_edits, - [:analytics_repository_file_id, :committed_date, :project_id], - name: 'index_file_edits_on_committed_date_file_id_and_project_id', - unique: true - end -end diff --git a/db/post_migrate/20190911251732_sync_issuables_state_id.rb b/db/post_migrate/20190911251732_sync_issuables_state_id.rb deleted file mode 100644 index 56e764a1ae2..00000000000 --- a/db/post_migrate/20190911251732_sync_issuables_state_id.rb +++ /dev/null @@ -1,79 +0,0 @@ -# frozen_string_literal: true - -# Sync remaining records for issues/merge_requests tables where state_id -# is still null. -# For more information check: https://gitlab.com/gitlab-org/gitlab-ee/issues/26823 -# It creates a temporary index before performing the UPDATES to sync values. -# -# In 09-11-2019 we have the following numbers for records with state_id == nil: -# -# 1348 issues - default batch size for each update 67 -# 10247 merge requests - default batch size for each update 511 - -class SyncIssuablesStateId < ActiveRecord::Migration[5.2] - include Gitlab::Database::MigrationHelpers - - DOWNTIME = false - - disable_ddl_transaction! - - def up - %i(issues merge_requests).each do |table| - temp_index_name = index_name_for(table) - - add_concurrent_index( - table, - 'id', - name: temp_index_name, - where: 'state_id IS NULL' - ) - - update_value = update_condition_for(table) - - update_column_in_batches(table, :state_id, update_value) do |table, query| - query.where(table[:state_id].eq(nil)) - end - ensure - remove_concurrent_index_by_name(table, temp_index_name) - end - end - - def down - # NO OP - end - - def update_condition_for(table) - value_expresson = - if table == :issues - issues_state_id_condition - else - merge_requests_state_id_condition - end - - Arel.sql(value_expresson) - end - - def index_name_for(table) - "idx_tmp_on_#{table}_where_state_id_is_null" - end - - def issues_state_id_condition - <<~SQL - CASE state - WHEN 'opened' THEN 1 - WHEN 'closed' THEN 2 - END - SQL - end - - def merge_requests_state_id_condition - <<~SQL - CASE state - WHEN 'opened' THEN 1 - WHEN 'closed' THEN 2 - WHEN 'merged' THEN 3 - WHEN 'locked' THEN 4 - END - SQL - end -end diff --git a/db/schema.rb b/db/schema.rb index b60593132f5..09f27d2f9cb 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -93,21 +93,6 @@ ActiveRecord::Schema.define(version: 2019_09_18_104222) do t.index ["project_id"], name: "analytics_repository_languages_on_project_id" end - create_table "analytics_repository_file_edits", force: :cascade do |t| - t.bigint "project_id", null: false - t.bigint "analytics_repository_file_id", null: false - t.date "committed_date", null: false - t.integer "num_edits", default: 0, null: false - t.index ["analytics_repository_file_id", "committed_date", "project_id"], name: "index_file_edits_on_committed_date_file_id_and_project_id", unique: true - t.index ["project_id"], name: "index_analytics_repository_file_edits_on_project_id" - end - - create_table "analytics_repository_files", force: :cascade do |t| - t.bigint "project_id", null: false - t.string "file_path", limit: 4096, null: false - t.index ["project_id", "file_path"], name: "index_analytics_repository_files_on_project_id_and_file_path", unique: true - end - create_table "appearances", id: :serial, force: :cascade do |t| t.string "title", null: false t.text "description", null: false @@ -3804,9 +3789,6 @@ ActiveRecord::Schema.define(version: 2019_09_18_104222) do 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 "analytics_repository_file_edits", "analytics_repository_files", on_delete: :cascade - add_foreign_key "analytics_repository_file_edits", "projects", on_delete: :cascade - add_foreign_key "analytics_repository_files", "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 -- cgit v1.2.1