debian-mirror-gitlab/db/migrate/20211007090229_create_issue_search_table.rb
2022-05-07 20:08:51 +05:30

29 lines
991 B
Ruby

# frozen_string_literal: true
class CreateIssueSearchTable < Gitlab::Database::Migration[1.0]
include Gitlab::Database::PartitioningMigrationHelpers::TableManagementHelpers
def up
execute <<~SQL
CREATE TABLE issue_search_data (
project_id bigint NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
issue_id bigint NOT NULL REFERENCES issues(id) ON DELETE CASCADE,
created_at timestamp with time zone DEFAULT NOW() NOT NULL,
updated_at timestamp with time zone DEFAULT NOW() NOT NULL,
search_vector tsvector,
PRIMARY KEY (project_id, issue_id)
) PARTITION BY HASH (project_id)
SQL
# rubocop: disable Migration/AddIndex
add_index :issue_search_data, :issue_id
add_index :issue_search_data, :search_vector, using: :gin, name: 'index_issue_search_data_on_search_vector'
# rubocop: enable Migration/AddIndex
create_hash_partitions :issue_search_data, 64
end
def down
drop_table :issue_search_data
end
end