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:

  1. Failed to create trigger due to query timeout.
  2. 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_function with replace: true so if it already exists, it'll be replaced. Making this migration idempotent. This will help in case migration fails
  • Use CREATE OR REPLACE TRIGGER instead of CREATE TRIGGER for the same reason as above.
  • Use with_lock_retries when 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

Merge request reports

Loading
Loading