Skip to content

Add resource_assignment_events table

Adam Hegyi requested to merge 397050-setup-resource-assignment-events-table into master

What does this MR do and why?

This MR sets up the ResourceEvents::AssignmentEvent model for tracking assignments of users within issues and MRs. The table will be used by value stream analytics for tracking time between various events, for example: mr creation time - mr first assignment time.

This MR contains the DB schema, model definition and tests.

Migration

Up:

main: == [advisory_lock_connection] object_id: 274120, pg_backend_pid: 1213006
main: == 20230412073614 CreateIssueAssignmentEvents: migrating ======================
main: -- create_table(:issue_assignment_events)
main:    -> 0.0096s
main: == 20230412073614 CreateIssueAssignmentEvents: migrated (0.0676s) =============

main: == [advisory_lock_connection] object_id: 274120, pg_backend_pid: 1213343
main: == 20230412080242 AddConcurrentFkToIssueAssignmentEvents: migrating ===========
main: -- transaction_open?()
main:    -> 0.0000s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER TABLE issue_assignment_events ADD CONSTRAINT fk_cfd2073177 FOREIGN KEY (issue_id) REFERENCES issues (id) ON DELETE CASCADE NOT VALID;")
main:    -> 0.0015s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0003s
main: -- execute("ALTER TABLE issue_assignment_events VALIDATE CONSTRAINT fk_cfd2073177;")
main:    -> 0.0018s
main: -- execute("RESET statement_timeout")
main:    -> 0.0003s
main: == 20230412080242 AddConcurrentFkToIssueAssignmentEvents: migrated (0.0938s) ==

main: == 20230413080906 CreateMergeRequestAssignmentEvents: migrating ===============
main: -- create_table(:merge_request_assignment_events)
main:    -> 0.0061s
main: == 20230413080906 CreateMergeRequestAssignmentEvents: migrated (0.0101s) ======

main: == 20230413080918 AddConcurrentFkToMergeRequestAssignmentEvents: migrating ====
main: -- transaction_open?()
main:    -> 0.0000s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER TABLE merge_request_assignment_events ADD CONSTRAINT fk_08f7602bfd FOREIGN KEY (merge_request_id) REFERENCES merge_requests (id) ON DELETE CASCADE NOT VALID;")
main:    -> 0.0012s
main: -- execute("ALTER TABLE merge_request_assignment_events VALIDATE CONSTRAINT fk_08f7602bfd;")
main:    -> 0.0016s
main: == 20230413080918 AddConcurrentFkToMergeRequestAssignmentEvents: migrated (0.0212s)

main: == [advisory_lock_connection] object_id: 274120, pg_backend_pid: 1213343
ci: == [advisory_lock_connection] object_id: 274580, pg_backend_pid: 1213346
ci: == 20230413080906 CreateMergeRequestAssignmentEvents: migrating ===============
ci: -- create_table(:merge_request_assignment_events)
ci:    -> 0.0071s
I, [2023-04-13T10:33:28.644953 #1213178]  INFO -- : Database: 'ci', Table: 'merge_request_assignment_events': Lock Writes
ci: == 20230413080906 CreateMergeRequestAssignmentEvents: migrated (0.0204s) ======

ci: == 20230413080918 AddConcurrentFkToMergeRequestAssignmentEvents: migrating ====
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- execute("ALTER TABLE merge_request_assignment_events ADD CONSTRAINT fk_08f7602bfd FOREIGN KEY (merge_request_id) REFERENCES merge_requests (id) ON DELETE CASCADE NOT VALID;")
ci:    -> 0.0009s
ci: -- execute("SET statement_timeout TO 0")
ci:    -> 0.0004s
ci: -- execute("ALTER TABLE merge_request_assignment_events VALIDATE CONSTRAINT fk_08f7602bfd;")
ci:    -> 0.0017s
ci: -- execute("RESET statement_timeout")
ci:    -> 0.0003s
ci: == 20230413080918 AddConcurrentFkToMergeRequestAssignmentEvents: migrated (0.0298s)

ci: == [advisory_lock_connection] object_id: 274580, pg_backend_pid: 1213346

Down:

main: == [advisory_lock_connection] object_id: 273900, pg_backend_pid: 1215596
main: == 20230413080918 AddConcurrentFkToMergeRequestAssignmentEvents: reverting ====
main: -- remove_foreign_key(:merge_request_assignment_events, {:column=>:merge_request_id})
main:    -> 0.0037s
main: == 20230413080918 AddConcurrentFkToMergeRequestAssignmentEvents: reverted (0.0642s)

main: == [advisory_lock_connection] object_id: 273900, pg_backend_pid: 1215596

main: == [advisory_lock_connection] object_id: 273840, pg_backend_pid: 1216102
main: == 20230413080906 CreateMergeRequestAssignmentEvents: reverting ===============
main: -- drop_table(:merge_request_assignment_events)
main:    -> 0.0023s
main: == 20230413080906 CreateMergeRequestAssignmentEvents: reverted (0.0086s) ======

main: == [advisory_lock_connection] object_id: 273840, pg_backend_pid: 1216102

main: == [advisory_lock_connection] object_id: 273840, pg_backend_pid: 1216517
main: == 20230412080242 AddConcurrentFkToIssueAssignmentEvents: reverting ===========
main: == 20230412080242 AddConcurrentFkToIssueAssignmentEvents: reverted (0.0722s) ==

main: == [advisory_lock_connection] object_id: 273840, pg_backend_pid: 1216517

main: == [advisory_lock_connection] object_id: 273840, pg_backend_pid: 1216930
main: == 20230412073614 CreateIssueAssignmentEvents: reverting ======================
main: -- drop_table(:issue_assignment_events)
main:    -> 0.0035s
main: == 20230412073614 CreateIssueAssignmentEvents: reverted (0.0104s) =============

main: == [advisory_lock_connection] object_id: 273840, pg_backend_pid: 1216930

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #397050 (closed)

Edited by Adam Hegyi

Merge request reports

Loading