diff options
Diffstat (limited to 'db/migrate/20211007090229_create_issue_search_table.rb')
-rw-r--r-- | db/migrate/20211007090229_create_issue_search_table.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/db/migrate/20211007090229_create_issue_search_table.rb b/db/migrate/20211007090229_create_issue_search_table.rb new file mode 100644 index 00000000000..1fc15d20bd0 --- /dev/null +++ b/db/migrate/20211007090229_create_issue_search_table.rb @@ -0,0 +1,29 @@ +# 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 |