Draft: [BLOCKED] Adding bigint indexes and fk for deployment_merge_requests

BLOCKED VIA: #507695 (comment 2970120358)

What does this MR do and why?

Adding bigint indexes and fk for deployment_merge_requests

This MR adds sync indexes, non-valid fks, and prepares fk validation for deployment_merge_requests This is for the bigint migration of columns deployment_id, merge_request_id, environment_id

Changelog: added

References

Screenshots or screen recordings

gitlabhq_development=# \d+ deployment_merge_requests
                                             Table "public.deployment_merge_requests"
               Column               |  Type  | Collation | Nullable | Default | Storage | Compression | Stats target | Description 
------------------------------------+--------+-----------+----------+---------+---------+-------------+--------------+-------------
 deployment_id                      | bigint |           | not null |         | plain   |             |              | 
 merge_request_id                   | bigint |           | not null |         | plain   |             |              | 
 environment_id                     | bigint |           |          |         | plain   |             |              | 
 project_id                         | bigint |           |          |         | plain   |             |              | 
 deployment_id_convert_to_bigint    | bigint |           |          |         | plain   |             |              | 
 merge_request_id_convert_to_bigint | bigint |           |          |         | plain   |             |              | 
 environment_id_convert_to_bigint   | bigint |           |          |         | plain   |             |              | 
Indexes:
    "deployment_merge_requests_pkey" PRIMARY KEY, btree (deployment_id, merge_request_id)
    "bigint_idx_58bf293f31365919110b" UNIQUE, btree (environment_id_convert_to_bigint, merge_request_id_convert_to_bigint)
    "bigint_idx_bc7ca4c7f2ca0c624100" btree (merge_request_id_convert_to_bigint)
    "bigint_idx_dd999be21656bf3d4bcc" UNIQUE, btree (deployment_id_convert_to_bigint, merge_request_id_convert_to_bigint)
    "idx_environment_merge_requests_unique_index" UNIQUE, btree (environment_id, merge_request_id)
    "index_deployment_merge_requests_on_merge_request_id" btree (merge_request_id)
Foreign-key constraints:
    "fk_a064ff4453" FOREIGN KEY (environment_id) REFERENCES environments(id) ON DELETE CASCADE
    "fk_a064ff4453_tmp" FOREIGN KEY (environment_id_convert_to_bigint) REFERENCES environments(id) ON DELETE CASCADE
    "fk_rails_86a6d8bf12" FOREIGN KEY (merge_request_id) REFERENCES merge_requests(id) ON DELETE CASCADE
    "fk_rails_86a6d8bf12_tmp" FOREIGN KEY (merge_request_id_convert_to_bigint) REFERENCES merge_requests(id_convert_to_bigint) ON DELETE CASCADE
    "fk_rails_dcbce9f4df" FOREIGN KEY (deployment_id) REFERENCES deployments(id) ON DELETE CASCADE
    "fk_rails_dcbce9f4df_tmp" FOREIGN KEY (deployment_id_convert_to_bigint) REFERENCES deployments(id_convert_to_bigint) ON DELETE CASCADE
Triggers:
    trigger_cfbec3f07e2b BEFORE INSERT OR UPDATE ON deployment_merge_requests FOR EACH ROW EXECUTE FUNCTION trigger_cfbec3f07e2b()
Access method: heap

How to set up and validate locally

https://docs.gitlab.com/development/database/foreign_keys/#test-database-fk-changes-locally

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #581430 (closed)

Edited by Max Fan

Merge request reports

Loading
Loading