Loading
Create partitioned MRDC table with triggers V2
What does this MR do and why?
We're adding a new migration to create the partitioned table and the triggers to sync the old and the new tables as the old one was reverted and changed to no-op.
The old migration failed to run on production during deployment twice:
- Failed to create trigger due to query timeout.
- On retry, failed to create trigger function as it already exists. It was created on the first try.
The differences between the old and this new version are:
- We're now calling
create_trigger_functionwithreplace: trueso if it already exists, it'll be replaced. Making this migration idempotent. This will help in case migration fails - Use
CREATE OR REPLACE TRIGGERinstead ofCREATE TRIGGERfor the same reason as above. - Use
with_lock_retrieswhen creating/dropping triggers. This table is a huge and high traffic one. This way it'll retry if it fails to acquire lock. - Creation of triggers is now in a PDM. This makes it simpler to retry and doesn't block deployment.
Original MR: !223703 (merged)
Revert MR: !226906 (merged)
db:migrate (with table and triggers existing)
Click to expand
$ bundle exec rake db:migrate
main: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 12313
main: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: migrating =======
main: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: migrated (0.0308s)
main: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 12313
ci: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 12314
ci: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: migrating =======
ci: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: migrated (0.0067s)
ci: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 12314
sec: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 12316
sec: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: migrating =======
sec: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: migrated (0.0081s)
sec: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 12316
main: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 12318
main: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: migrating ==
main: -- transaction_open?(nil)
main: -> 0.0000s
main: -- execute("CREATE OR REPLACE FUNCTION table_sync_function_0992e728d3_insert()\nRETURNS TRIGGER AS\n$$\nBEGIN\nINSERT INTO merge_request_diff_commits_b5377a7a34\n (merge_request_commits_metadata_id, project_id, merge_request_diff_id, relative_order)\nSELECT\n new_table.merge_request_commits_metadata_id,\n new_table.project_id,\n new_table.merge_request_diff_id,\n new_table.relative_order\nFROM new_table\nWHERE new_table.merge_request_commits_metadata_id IS NOT NULL\n AND new_table.project_id IS NOT NULL;\n\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
main: -> 0.0012s
main: -- execute("CREATE OR REPLACE FUNCTION table_sync_function_0992e728d3_delete()\nRETURNS TRIGGER AS\n$$\nBEGIN\nDELETE FROM merge_request_diff_commits_b5377a7a34\nWHERE (merge_request_diff_id, relative_order, project_id) IN (\n SELECT\n old_table.merge_request_diff_id,\n old_table.relative_order,\n old_table.project_id\n FROM old_table\n WHERE old_table.project_id IS NOT NULL\n);\n\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
main: -> 0.0003s
main: -- execute("CREATE OR REPLACE TRIGGER table_sync_trigger_57c8465cd7_insert AFTER INSERT ON merge_request_diff_commits REFERENCING NEW TABLE AS new_table FOR EACH STATEMENT EXECUTE FUNCTION table_sync_function_0992e728d3_insert();")
main: -> 0.0004s
main: -- execute("CREATE OR REPLACE TRIGGER table_sync_trigger_57c8465cd7_delete AFTER DELETE ON merge_request_diff_commits REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION table_sync_function_0992e728d3_delete();")
main: -> 0.0003s
main: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: migrated (0.0142s)
main: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 12318
ci: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 12319
ci: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: migrating ==
ci: -- transaction_open?(nil)
ci: -> 0.0000s
ci: -- execute("CREATE OR REPLACE FUNCTION table_sync_function_0992e728d3_insert()\nRETURNS TRIGGER AS\n$$\nBEGIN\nINSERT INTO merge_request_diff_commits_b5377a7a34\n (merge_request_commits_metadata_id, project_id, merge_request_diff_id, relative_order)\nSELECT\n new_table.merge_request_commits_metadata_id,\n new_table.project_id,\n new_table.merge_request_diff_id,\n new_table.relative_order\nFROM new_table\nWHERE new_table.merge_request_commits_metadata_id IS NOT NULL\n AND new_table.project_id IS NOT NULL;\n\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
ci: -> 0.0012s
ci: -- execute("CREATE OR REPLACE FUNCTION table_sync_function_0992e728d3_delete()\nRETURNS TRIGGER AS\n$$\nBEGIN\nDELETE FROM merge_request_diff_commits_b5377a7a34\nWHERE (merge_request_diff_id, relative_order, project_id) IN (\n SELECT\n old_table.merge_request_diff_id,\n old_table.relative_order,\n old_table.project_id\n FROM old_table\n WHERE old_table.project_id IS NOT NULL\n);\n\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
ci: -> 0.0003s
ci: -- execute("CREATE OR REPLACE TRIGGER table_sync_trigger_57c8465cd7_insert AFTER INSERT ON merge_request_diff_commits REFERENCING NEW TABLE AS new_table FOR EACH STATEMENT EXECUTE FUNCTION table_sync_function_0992e728d3_insert();")
ci: -> 0.0004s
ci: -- execute("CREATE OR REPLACE TRIGGER table_sync_trigger_57c8465cd7_delete AFTER DELETE ON merge_request_diff_commits REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION table_sync_function_0992e728d3_delete();")
ci: -> 0.0003s
ci: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: migrated (0.0102s)
ci: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 12319
sec: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 12321
sec: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: migrating ==
sec: -- transaction_open?(nil)
sec: -> 0.0000s
sec: -- execute("CREATE OR REPLACE FUNCTION table_sync_function_0992e728d3_insert()\nRETURNS TRIGGER AS\n$$\nBEGIN\nINSERT INTO merge_request_diff_commits_b5377a7a34\n (merge_request_commits_metadata_id, project_id, merge_request_diff_id, relative_order)\nSELECT\n new_table.merge_request_commits_metadata_id,\n new_table.project_id,\n new_table.merge_request_diff_id,\n new_table.relative_order\nFROM new_table\nWHERE new_table.merge_request_commits_metadata_id IS NOT NULL\n AND new_table.project_id IS NOT NULL;\n\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
sec: -> 0.0023s
sec: -- execute("CREATE OR REPLACE FUNCTION table_sync_function_0992e728d3_delete()\nRETURNS TRIGGER AS\n$$\nBEGIN\nDELETE FROM merge_request_diff_commits_b5377a7a34\nWHERE (merge_request_diff_id, relative_order, project_id) IN (\n SELECT\n old_table.merge_request_diff_id,\n old_table.relative_order,\n old_table.project_id\n FROM old_table\n WHERE old_table.project_id IS NOT NULL\n);\n\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
sec: -> 0.0003s
sec: -- execute("CREATE OR REPLACE TRIGGER table_sync_trigger_57c8465cd7_insert AFTER INSERT ON merge_request_diff_commits REFERENCING NEW TABLE AS new_table FOR EACH STATEMENT EXECUTE FUNCTION table_sync_function_0992e728d3_insert();")
sec: -> 0.0010s
sec: -- execute("CREATE OR REPLACE TRIGGER table_sync_trigger_57c8465cd7_delete AFTER DELETE ON merge_request_diff_commits REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION table_sync_function_0992e728d3_delete();")
sec: -> 0.0004s
sec: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: migrated (0.0121s)
sec: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 12321
db:migrate (fresh)
Click to expand
$ bundle exec rake db:migrate
main: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 16788
main: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: migrating =======
main: -- create_table("merge_request_diff_commits_b5377a7a34", {:options=>"PARTITION BY RANGE(project_id)", :primary_key=>[:merge_request_diff_id, :relative_order, :project_id]})
main: -> 0.0050s
main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_1 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (1) TO (2000001)\n")
main: -> 0.0035s
main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_2000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (2000001) TO (4000001)\n")
main: -> 0.0024s
main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_4000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (4000001) TO (6000001)\n")
main: -> 0.0019s
main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_6000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (6000001) TO (8000001)\n")
main: -> 0.0037s
main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_8000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (8000001) TO (10000001)\n")
main: -> 0.0020s
main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_10000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (10000001) TO (12000001)\n")
main: -> 0.0017s
main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_12000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (12000001) TO (14000001)\n")
main: -> 0.0018s
main: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: migrated (0.0711s)
main: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 16788
ci: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 16789
ci: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: migrating =======
ci: -- create_table("merge_request_diff_commits_b5377a7a34", {:options=>"PARTITION BY RANGE(project_id)", :primary_key=>[:merge_request_diff_id, :relative_order, :project_id]})
ci: -> 0.0051s
ci: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_1 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (1) TO (2000001)\n")
ci: -> 0.0029s
ci: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_2000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (2000001) TO (4000001)\n")
ci: -> 0.0018s
ci: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_4000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (4000001) TO (6000001)\n")
ci: -> 0.0019s
ci: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_6000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (6000001) TO (8000001)\n")
ci: -> 0.0020s
ci: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_8000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (8000001) TO (10000001)\n")
ci: -> 0.0023s
ci: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_10000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (10000001) TO (12000001)\n")
ci: -> 0.0022s
ci: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: migrated (0.0451s)
ci: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 16789
sec: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 16791
sec: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: migrating =======
sec: -- create_table("merge_request_diff_commits_b5377a7a34", {:options=>"PARTITION BY RANGE(project_id)", :primary_key=>[:merge_request_diff_id, :relative_order, :project_id]})
sec: -> 0.0064s
sec: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_1 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (1) TO (2000001)\n")
sec: -> 0.0031s
sec: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_2000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (2000001) TO (4000001)\n")
sec: -> 0.0024s
sec: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_4000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (4000001) TO (6000001)\n")
sec: -> 0.0019s
sec: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_6000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (6000001) TO (8000001)\n")
sec: -> 0.0018s
sec: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_8000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (8000001) TO (10000001)\n")
sec: -> 0.0018s
sec: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_10000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (10000001) TO (12000001)\n")
sec: -> 0.0019s
sec: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: migrated (0.0458s)
sec: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 16791
main: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 16793
main: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: migrating ==
main: -- transaction_open?(nil)
main: -> 0.0000s
main: -- execute("CREATE OR REPLACE FUNCTION table_sync_function_0992e728d3_insert()\nRETURNS TRIGGER AS\n$$\nBEGIN\nINSERT INTO merge_request_diff_commits_b5377a7a34\n (merge_request_commits_metadata_id, project_id, merge_request_diff_id, relative_order)\nSELECT\n new_table.merge_request_commits_metadata_id,\n new_table.project_id,\n new_table.merge_request_diff_id,\n new_table.relative_order\nFROM new_table\nWHERE new_table.merge_request_commits_metadata_id IS NOT NULL\n AND new_table.project_id IS NOT NULL;\n\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
main: -> 0.0015s
main: -- execute("CREATE OR REPLACE FUNCTION table_sync_function_0992e728d3_delete()\nRETURNS TRIGGER AS\n$$\nBEGIN\nDELETE FROM merge_request_diff_commits_b5377a7a34\nWHERE (merge_request_diff_id, relative_order, project_id) IN (\n SELECT\n old_table.merge_request_diff_id,\n old_table.relative_order,\n old_table.project_id\n FROM old_table\n WHERE old_table.project_id IS NOT NULL\n);\n\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
main: -> 0.0004s
main: -- execute("CREATE OR REPLACE TRIGGER table_sync_trigger_57c8465cd7_insert AFTER INSERT ON merge_request_diff_commits REFERENCING NEW TABLE AS new_table FOR EACH STATEMENT EXECUTE FUNCTION table_sync_function_0992e728d3_insert();")
main: -> 0.0006s
main: -- execute("CREATE OR REPLACE TRIGGER table_sync_trigger_57c8465cd7_delete AFTER DELETE ON merge_request_diff_commits REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION table_sync_function_0992e728d3_delete();")
main: -> 0.0004s
main: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: migrated (0.0163s)
main: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 16793
ci: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 16794
ci: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: migrating ==
ci: -- transaction_open?(nil)
ci: -> 0.0000s
ci: -- execute("CREATE OR REPLACE FUNCTION table_sync_function_0992e728d3_insert()\nRETURNS TRIGGER AS\n$$\nBEGIN\nINSERT INTO merge_request_diff_commits_b5377a7a34\n (merge_request_commits_metadata_id, project_id, merge_request_diff_id, relative_order)\nSELECT\n new_table.merge_request_commits_metadata_id,\n new_table.project_id,\n new_table.merge_request_diff_id,\n new_table.relative_order\nFROM new_table\nWHERE new_table.merge_request_commits_metadata_id IS NOT NULL\n AND new_table.project_id IS NOT NULL;\n\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
ci: -> 0.0014s
ci: -- execute("CREATE OR REPLACE FUNCTION table_sync_function_0992e728d3_delete()\nRETURNS TRIGGER AS\n$$\nBEGIN\nDELETE FROM merge_request_diff_commits_b5377a7a34\nWHERE (merge_request_diff_id, relative_order, project_id) IN (\n SELECT\n old_table.merge_request_diff_id,\n old_table.relative_order,\n old_table.project_id\n FROM old_table\n WHERE old_table.project_id IS NOT NULL\n);\n\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
ci: -> 0.0004s
ci: -- execute("CREATE OR REPLACE TRIGGER table_sync_trigger_57c8465cd7_insert AFTER INSERT ON merge_request_diff_commits REFERENCING NEW TABLE AS new_table FOR EACH STATEMENT EXECUTE FUNCTION table_sync_function_0992e728d3_insert();")
ci: -> 0.0006s
ci: -- execute("CREATE OR REPLACE TRIGGER table_sync_trigger_57c8465cd7_delete AFTER DELETE ON merge_request_diff_commits REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION table_sync_function_0992e728d3_delete();")
ci: -> 0.0003s
ci: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: migrated (0.0134s)
ci: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 16794
sec: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 16796
sec: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: migrating ==
sec: -- transaction_open?(nil)
sec: -> 0.0000s
sec: -- execute("CREATE OR REPLACE FUNCTION table_sync_function_0992e728d3_insert()\nRETURNS TRIGGER AS\n$$\nBEGIN\nINSERT INTO merge_request_diff_commits_b5377a7a34\n (merge_request_commits_metadata_id, project_id, merge_request_diff_id, relative_order)\nSELECT\n new_table.merge_request_commits_metadata_id,\n new_table.project_id,\n new_table.merge_request_diff_id,\n new_table.relative_order\nFROM new_table\nWHERE new_table.merge_request_commits_metadata_id IS NOT NULL\n AND new_table.project_id IS NOT NULL;\n\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
sec: -> 0.0014s
sec: -- execute("CREATE OR REPLACE FUNCTION table_sync_function_0992e728d3_delete()\nRETURNS TRIGGER AS\n$$\nBEGIN\nDELETE FROM merge_request_diff_commits_b5377a7a34\nWHERE (merge_request_diff_id, relative_order, project_id) IN (\n SELECT\n old_table.merge_request_diff_id,\n old_table.relative_order,\n old_table.project_id\n FROM old_table\n WHERE old_table.project_id IS NOT NULL\n);\n\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
sec: -> 0.0004s
sec: -- execute("CREATE OR REPLACE TRIGGER table_sync_trigger_57c8465cd7_insert AFTER INSERT ON merge_request_diff_commits REFERENCING NEW TABLE AS new_table FOR EACH STATEMENT EXECUTE FUNCTION table_sync_function_0992e728d3_insert();")
sec: -> 0.0006s
sec: -- execute("CREATE OR REPLACE TRIGGER table_sync_trigger_57c8465cd7_delete AFTER DELETE ON merge_request_diff_commits REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION table_sync_function_0992e728d3_delete();")
sec: -> 0.0003s
sec: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: migrated (0.0120s)
sec: == [advisory_lock_connection] object_id: 137320, pg_backend_pid: 16796
db:migrate:down
Click to expand
$ VERSION=20260312045044 bundle exec rake db:migrate:down:main db:migrate:down:ci db:migrate:down:sec
main: == [advisory_lock_connection] object_id: 136480, pg_backend_pid: 12430
main: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: reverting ==
main: -- transaction_open?(nil)
main: -> 0.0000s
main: -- execute("DROP TRIGGER IF EXISTS table_sync_trigger_57c8465cd7_insert ON merge_request_diff_commits")
main: -> 0.0007s
main: -- execute("DROP TRIGGER IF EXISTS table_sync_trigger_57c8465cd7_delete ON merge_request_diff_commits")
main: -> 0.0004s
main: -- execute("DROP FUNCTION IF EXISTS table_sync_function_0992e728d3_insert()")
main: -> 0.0004s
main: -- execute("DROP FUNCTION IF EXISTS table_sync_function_0992e728d3_delete()")
main: -> 0.0005s
main: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: reverted (0.0207s)
main: == [advisory_lock_connection] object_id: 136480, pg_backend_pid: 12430
ci: == [advisory_lock_connection] object_id: 136480, pg_backend_pid: 12444
ci: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: reverting ==
ci: -- transaction_open?(nil)
ci: -> 0.0000s
ci: -- execute("DROP TRIGGER IF EXISTS table_sync_trigger_57c8465cd7_insert ON merge_request_diff_commits")
ci: -> 0.0014s
ci: -- execute("DROP TRIGGER IF EXISTS table_sync_trigger_57c8465cd7_delete ON merge_request_diff_commits")
ci: -> 0.0012s
ci: -- execute("DROP FUNCTION IF EXISTS table_sync_function_0992e728d3_insert()")
ci: -> 0.0009s
ci: -- execute("DROP FUNCTION IF EXISTS table_sync_function_0992e728d3_delete()")
ci: -> 0.0007s
ci: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: reverted (0.0209s)
ci: == [advisory_lock_connection] object_id: 136480, pg_backend_pid: 12444
sec: == [advisory_lock_connection] object_id: 136480, pg_backend_pid: 12449
sec: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: reverting ==
sec: -- transaction_open?(nil)
sec: -> 0.0000s
sec: -- execute("DROP TRIGGER IF EXISTS table_sync_trigger_57c8465cd7_insert ON merge_request_diff_commits")
sec: -> 0.0006s
sec: -- execute("DROP TRIGGER IF EXISTS table_sync_trigger_57c8465cd7_delete ON merge_request_diff_commits")
sec: -> 0.0003s
sec: -- execute("DROP FUNCTION IF EXISTS table_sync_function_0992e728d3_insert()")
sec: -> 0.0004s
sec: -- execute("DROP FUNCTION IF EXISTS table_sync_function_0992e728d3_delete()")
sec: -> 0.0003s
sec: == 20260312045044 AddTriggersToPartitionedMergeRequestDiffCommits: reverted (0.0108s)
sec: == [advisory_lock_connection] object_id: 136480, pg_backend_pid: 12449
$ VERSION=20260312044547 bundle exec rake db:migrate:down:main db:migrate:down:ci db:migrate:down:sec
main: == [advisory_lock_connection] object_id: 136500, pg_backend_pid: 12488
main: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: reverting =======
main: -- transaction_open?(nil)
main: -> 0.0000s
main: -- transaction_open?(nil)
main: -> 0.0000s
main: -- execute("DROP TRIGGER IF EXISTS table_sync_trigger_57c8465cd7 ON merge_request_diff_commits")
main: -> 0.0005s
main: -- execute("DROP FUNCTION IF EXISTS table_sync_function_0992e728d3()")
main: -> 0.0003s
main: -- drop_table("merge_request_diff_commits_b5377a7a34")
main: -> 0.0068s
main: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: reverted (0.0268s)
main: == [advisory_lock_connection] object_id: 136500, pg_backend_pid: 12488
ci: == [advisory_lock_connection] object_id: 136500, pg_backend_pid: 12504
ci: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: reverting =======
ci: -- transaction_open?(nil)
ci: -> 0.0000s
ci: -- transaction_open?(nil)
ci: -> 0.0000s
ci: -- execute("DROP TRIGGER IF EXISTS table_sync_trigger_57c8465cd7 ON merge_request_diff_commits")
ci: -> 0.0004s
ci: -- execute("DROP FUNCTION IF EXISTS table_sync_function_0992e728d3()")
ci: -> 0.0004s
ci: -- drop_table("merge_request_diff_commits_b5377a7a34")
ci: -> 0.0056s
ci: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: reverted (0.0154s)
ci: == [advisory_lock_connection] object_id: 136500, pg_backend_pid: 12504
sec: == [advisory_lock_connection] object_id: 136500, pg_backend_pid: 12510
sec: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: reverting =======
sec: -- transaction_open?(nil)
sec: -> 0.0000s
sec: -- transaction_open?(nil)
sec: -> 0.0000s
sec: -- execute("DROP TRIGGER IF EXISTS table_sync_trigger_57c8465cd7 ON merge_request_diff_commits")
sec: -> 0.0005s
sec: -- execute("DROP FUNCTION IF EXISTS table_sync_function_0992e728d3()")
sec: -> 0.0004s
sec: -- drop_table("merge_request_diff_commits_b5377a7a34")
sec: -> 0.0059s
sec: == 20260312044547 CreatePartitionedMergeRequestDiffCommitsV2: reverted (0.0161s)
sec: == [advisory_lock_connection] object_id: 136500, pg_backend_pid: 12510
References
https://gitlab.com/gitlab-org/gitlab/-/work_items/527228
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 #527228
Edited by Patrick Bajao