diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-19 15:06:24 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-19 15:06:24 +0000 |
commit | 88542a5e9613c8442a982e65ad5cf13eb33bc541 (patch) | |
tree | 11a65d86e623b443b8a2976cc93cff360e2da8a2 /db | |
parent | b570d73ecd31e2ca9cf8c2f1adb056edf2869477 (diff) | |
download | gitlab-ce-88542a5e9613c8442a982e65ad5cf13eb33bc541.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'db')
7 files changed, 10 insertions, 90 deletions
diff --git a/db/migrate/20180113220114_rework_redirect_routes_indexes.rb b/db/migrate/20180113220114_rework_redirect_routes_indexes.rb index 2b9365ce827..ca7ce6286dc 100644 --- a/db/migrate/20180113220114_rework_redirect_routes_indexes.rb +++ b/db/migrate/20180113220114_rework_redirect_routes_indexes.rb @@ -25,10 +25,6 @@ class ReworkRedirectRoutesIndexes < ActiveRecord::Migration[4.2] remove_concurrent_index(:redirect_routes, :permanent) end - # If we're on MySQL then the existing index on path is ok. But on - # Postgres we need to clean things up: - break unless Gitlab::Database.postgresql? - if_not_exists = Gitlab::Database.version.to_f >= 9.5 ? "IF NOT EXISTS" : "" # Unique index on lower(path) across both types of redirect_routes: @@ -53,8 +49,6 @@ class ReworkRedirectRoutesIndexes < ActiveRecord::Migration[4.2] disable_statement_timeout do add_concurrent_index(:redirect_routes, :permanent) - break unless Gitlab::Database.postgresql? - execute("CREATE INDEX CONCURRENTLY #{OLD_INDEX_NAME_PATH_TPOPS} ON redirect_routes (path varchar_pattern_ops);") execute("CREATE INDEX CONCURRENTLY #{OLD_INDEX_NAME_PATH_LOWER} ON redirect_routes (LOWER(path));") diff --git a/db/migrate/20180308052825_add_section_name_id_index_on_ci_build_trace_sections.rb b/db/migrate/20180308052825_add_section_name_id_index_on_ci_build_trace_sections.rb index 4d2ab7d757f..58a1d2b12d5 100644 --- a/db/migrate/20180308052825_add_section_name_id_index_on_ci_build_trace_sections.rb +++ b/db/migrate/20180308052825_add_section_name_id_index_on_ci_build_trace_sections.rb @@ -8,16 +8,10 @@ class AddSectionNameIdIndexOnCiBuildTraceSections < ActiveRecord::Migration[4.2] disable_ddl_transaction! def up - # MySQL may already have this as a foreign key - unless index_exists?(:ci_build_trace_sections, :section_name_id, name: INDEX_NAME) - add_concurrent_index :ci_build_trace_sections, :section_name_id, name: INDEX_NAME - end + add_concurrent_index :ci_build_trace_sections, :section_name_id, name: INDEX_NAME end def down - # We cannot remove index for MySQL because it's needed for foreign key - if Gitlab::Database.postgresql? - remove_concurrent_index :ci_build_trace_sections, :section_name_id, name: INDEX_NAME - end + remove_concurrent_index :ci_build_trace_sections, :section_name_id, name: INDEX_NAME end end diff --git a/db/migrate/20180320182229_add_indexes_for_user_activity_queries.rb b/db/migrate/20180320182229_add_indexes_for_user_activity_queries.rb index a15e1d68a95..ba8ad1b7495 100644 --- a/db/migrate/20180320182229_add_indexes_for_user_activity_queries.rb +++ b/db/migrate/20180320182229_add_indexes_for_user_activity_queries.rb @@ -13,28 +13,6 @@ class AddIndexesForUserActivityQueries < ActiveRecord::Migration[4.2] def down remove_concurrent_index :events, [:author_id, :project_id] if index_exists?(:events, [:author_id, :project_id]) - patch_foreign_keys do - remove_concurrent_index :user_interacted_projects, :user_id if index_exists?(:user_interacted_projects, :user_id) - end - end - - private - - def patch_foreign_keys - return yield if Gitlab::Database.postgresql? - - # MySQL doesn't like to remove the index with a foreign key using it. - remove_foreign_key :user_interacted_projects, :users if fk_exists?(:user_interacted_projects, :user_id) - - yield - - # Let's re-add the foreign key using the existing index on (user_id, project_id) - add_concurrent_foreign_key :user_interacted_projects, :users, column: :user_id unless fk_exists?(:user_interacted_projects, :user_id) - end - - def fk_exists?(table, column) - foreign_keys(table).any? do |key| - key.options[:column] == column.to_s - end + remove_concurrent_index :user_interacted_projects, :user_id if index_exists?(:user_interacted_projects, :user_id) end end diff --git a/db/migrate/20180711103851_drop_duplicate_protected_tags.rb b/db/migrate/20180711103851_drop_duplicate_protected_tags.rb index 6166aa65f1f..94f72aa162d 100644 --- a/db/migrate/20180711103851_drop_duplicate_protected_tags.rb +++ b/db/migrate/20180711103851_drop_duplicate_protected_tags.rb @@ -29,14 +29,7 @@ class DropDuplicateProtectedTags < ActiveRecord::Migration[4.2] .where(project_id: projects) .where.not(id: ids) - if Gitlab::Database.postgresql? - tags.delete_all - else - # Workaround needed for MySQL - sql = "SELECT id FROM (#{tags.to_sql}) protected_tags" - - ProtectedTag.where("id IN (#{sql})").delete_all # rubocop:disable GitlabSecurity/SqlInjection - end + tags.delete_all end end diff --git a/db/migrate/20180927073410_add_index_to_project_deploy_tokens_deploy_token_id.rb b/db/migrate/20180927073410_add_index_to_project_deploy_tokens_deploy_token_id.rb index 80577c52a01..edfcad81202 100644 --- a/db/migrate/20180927073410_add_index_to_project_deploy_tokens_deploy_token_id.rb +++ b/db/migrate/20180927073410_add_index_to_project_deploy_tokens_deploy_token_id.rb @@ -8,11 +8,10 @@ class AddIndexToProjectDeployTokensDeployTokenId < ActiveRecord::Migration[4.2] disable_ddl_transaction! def up - # MySQL already has index inserted - add_concurrent_index :project_deploy_tokens, :deploy_token_id if Gitlab::Database.postgresql? + add_concurrent_index :project_deploy_tokens, :deploy_token_id end def down - remove_concurrent_index(:project_deploy_tokens, :deploy_token_id) if Gitlab::Database.postgresql? + remove_concurrent_index(:project_deploy_tokens, :deploy_token_id) end end diff --git a/db/post_migrate/20180119121225_remove_redundant_pipeline_stages.rb b/db/post_migrate/20180119121225_remove_redundant_pipeline_stages.rb index 88b713aaef3..66ad0a89539 100644 --- a/db/post_migrate/20180119121225_remove_redundant_pipeline_stages.rb +++ b/db/post_migrate/20180119121225_remove_redundant_pipeline_stages.rb @@ -50,17 +50,9 @@ class RemoveRedundantPipelineStages < ActiveRecord::Migration[4.2] UPDATE ci_builds SET stage_id = NULL WHERE stage_id IN (#{redundant_stages_ids}) SQL - if Gitlab::Database.postgresql? - execute <<~SQL - DELETE FROM ci_stages WHERE id IN (#{redundant_stages_ids}) - SQL - else # We can't modify a table we are selecting from on MySQL - execute <<~SQL - DELETE a FROM ci_stages AS a, ci_stages AS b - WHERE a.pipeline_id = b.pipeline_id AND a.name = b.name - AND a.id <> b.id - SQL - end + execute <<~SQL + DELETE FROM ci_stages WHERE id IN (#{redundant_stages_ids}) + SQL end end end diff --git a/db/post_migrate/20180223124427_build_user_interacted_projects_table.rb b/db/post_migrate/20180223124427_build_user_interacted_projects_table.rb index 325895a5ddb..1eb49d60da5 100644 --- a/db/post_migrate/20180223124427_build_user_interacted_projects_table.rb +++ b/db/post_migrate/20180223124427_build_user_interacted_projects_table.rb @@ -12,11 +12,7 @@ class BuildUserInteractedProjectsTable < ActiveRecord::Migration[4.2] disable_ddl_transaction! def up - if Gitlab::Database.postgresql? - PostgresStrategy.new - else - MysqlStrategy.new - end.up + PostgresStrategy.new.up if index_exists_by_name?(:user_interacted_projects, CreateUserInteractedProjectsTable::INDEX_NAME) remove_concurrent_index_by_name :user_interacted_projects, CreateUserInteractedProjectsTable::INDEX_NAME @@ -140,30 +136,4 @@ class BuildUserInteractedProjectsTable < ActiveRecord::Migration[4.2] remove_concurrent_index(*args) if index_exists?(*args) end end - - class MysqlStrategy < ActiveRecord::Migration[4.2] - include Gitlab::Database::MigrationHelpers - - def up - execute <<~SQL - INSERT INTO user_interacted_projects (user_id, project_id) - SELECT e.user_id, e.project_id - FROM (SELECT DISTINCT author_id AS user_id, project_id FROM events WHERE project_id IS NOT NULL) AS e - LEFT JOIN user_interacted_projects ucp USING (user_id, project_id) - WHERE ucp.user_id IS NULL - SQL - - unless index_exists?(:user_interacted_projects, [:project_id, :user_id]) - add_concurrent_index :user_interacted_projects, [:project_id, :user_id], unique: true, name: UNIQUE_INDEX_NAME - end - - unless foreign_key_exists?(:user_interacted_projects, :users, column: :user_id) - add_concurrent_foreign_key :user_interacted_projects, :users, column: :user_id, on_delete: :cascade - end - - unless foreign_key_exists?(:user_interacted_projects, :projects, column: :project_id) - add_concurrent_foreign_key :user_interacted_projects, :projects, column: :project_id, on_delete: :cascade - end - end - end end |