Add `incident_management_timeline_events` table and `TimelineEvent` model
What does this MR do and why?
Add incident_management_timeline_events
table and TimelineEvent
model
Implements to #344056 (closed)
Overall epic with description of the feature at &6376 (closed)
Differences between current implementation and requirements from the issue
- Column
event_created_at
renamed tooccurred_at
-
note
andnote_html
limit set to 10_000, based on the following discussion https://gitlab.com/gitlab-org/monitor/monitor/-/issues/86#note_745765087 - New columns was added
promoted_from_note_id
. More info here https://gitlab.com/gitlab-org/monitor/monitor/-/issues/86#note_746917139
Database
`db:migrate`
→ be rails db:migrate
== 20211115132613 CreateIncidentManagementTimelineEvents: migrating ===========
-- create_table(:incident_management_timeline_events, {})
-- quote_column_name(:note)
-> 0.0000s
-- quote_column_name(:note_html)
-> 0.0000s
-- quote_column_name(:action)
-> 0.0000s
-> 0.0311s
== 20211115132613 CreateIncidentManagementTimelineEvents: migrated (0.0312s) ==
== 20211115142803 AddForeignKeyToIncidentManagementTimelineEventsOnProject: migrating
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:incident_management_timeline_events)
-> 0.0040s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE incident_management_timeline_events\nADD CONSTRAINT fk_4432fc4d78\nFOREIGN KEY (project_id)\nREFERENCES projects (id)\nON DELETE CASCADE\nNOT VALID;\n")
-> 0.0051s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE incident_management_timeline_events VALIDATE CONSTRAINT fk_4432fc4d78;")
-> 0.0080s
-- execute("RESET statement_timeout")
-> 0.0006s
== 20211115142803 AddForeignKeyToIncidentManagementTimelineEventsOnProject: migrated (0.0306s)
== 20211115142847 AddForeignKeyToIncidentManagementTimelineEventsOnUser: migrating
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:incident_management_timeline_events)
-> 0.0024s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE incident_management_timeline_events\nADD CONSTRAINT fk_1800597ef9\nFOREIGN KEY (author_id)\nREFERENCES users (id)\nON DELETE CASCADE\nNOT VALID;\n")
-> 0.0030s
-- execute("ALTER TABLE incident_management_timeline_events VALIDATE CONSTRAINT fk_1800597ef9;")
-> 0.0047s
== 20211115142847 AddForeignKeyToIncidentManagementTimelineEventsOnUser: migrated (0.0144s)
== 20211115142911 AddForeignKeyToIncidentManagementTimelineEventsOnIssue: migrating
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:incident_management_timeline_events)
-> 0.0028s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE incident_management_timeline_events\nADD CONSTRAINT fk_17a5fafbd4\nFOREIGN KEY (issue_id)\nREFERENCES issues (id)\nON DELETE CASCADE\nNOT VALID;\n")
-> 0.0024s
-- execute("ALTER TABLE incident_management_timeline_events VALIDATE CONSTRAINT fk_17a5fafbd4;")
-> 0.0216s
== 20211115142911 AddForeignKeyToIncidentManagementTimelineEventsOnIssue: migrated (0.0310s)
== 20211116093739 AddForeignKeyToIncidentManagementTimelineEventsOnUpdatedByUser: migrating
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:incident_management_timeline_events)
-> 0.0023s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE incident_management_timeline_events\nADD CONSTRAINT fk_38a74279df\nFOREIGN KEY (updated_by_user_id)\nREFERENCES users (id)\nON DELETE SET NULL\nNOT VALID;\n")
-> 0.0012s
-- execute("ALTER TABLE incident_management_timeline_events VALIDATE CONSTRAINT fk_38a74279df;")
-> 0.0016s
== 20211116093739 AddForeignKeyToIncidentManagementTimelineEventsOnUpdatedByUser: migrated (0.0094s)
== 20211130151724 AddForeignKeyToIncidentManagementTimelineEventsOnNote: migrating
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:incident_management_timeline_events)
-> 0.0025s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE incident_management_timeline_events\nADD CONSTRAINT fk_d606a2a890\nFOREIGN KEY (promoted_from_note_id)\nREFERENCES notes (id)\nON DELETE SET NULL\nNOT VALID;\n")
-> 0.0021s
-- execute("ALTER TABLE incident_management_timeline_events VALIDATE CONSTRAINT fk_d606a2a890;")
-> 0.0079s
== 20211130151724 AddForeignKeyToIncidentManagementTimelineEventsOnNote: migrated (0.0166s)
`db:rollback STEP=5`
→ be rails db:rollback
== 20211130151724 AddForeignKeyToIncidentManagementTimelineEventsOnNote: reverting
-- transaction_open?()
-> 0.0000s
-- remove_foreign_key(:incident_management_timeline_events, {:column=>:promoted_from_note_id})
-> 0.0056s
== 20211130151724 AddForeignKeyToIncidentManagementTimelineEventsOnNote: reverted (0.0173s)
== 20211116093739 AddForeignKeyToIncidentManagementTimelineEventsOnUpdatedByUser: reverting
-- transaction_open?()
-> 0.0000s
-- remove_foreign_key(:incident_management_timeline_events, {:column=>:updated_by_user_id})
-> 0.0034s
== 20211116093739 AddForeignKeyToIncidentManagementTimelineEventsOnUpdatedByUser: reverted (0.0070s)
== 20211115142911 AddForeignKeyToIncidentManagementTimelineEventsOnIssue: reverting
-- transaction_open?()
-> 0.0000s
-- remove_foreign_key(:incident_management_timeline_events, {:column=>:issue_id})
-> 0.0031s
== 20211115142911 AddForeignKeyToIncidentManagementTimelineEventsOnIssue: reverted (0.0064s)
== 20211115142847 AddForeignKeyToIncidentManagementTimelineEventsOnUser: reverting
-- transaction_open?()
-> 0.0000s
-- remove_foreign_key(:incident_management_timeline_events, {:column=>:author_id})
-> 0.0036s
== 20211115142847 AddForeignKeyToIncidentManagementTimelineEventsOnUser: reverted (0.0070s)
== 20211115142803 AddForeignKeyToIncidentManagementTimelineEventsOnProject: reverting
-- transaction_open?()
-> 0.0000s
-- remove_foreign_key(:incident_management_timeline_events, {:column=>:project_id})
-> 0.0033s
== 20211115142803 AddForeignKeyToIncidentManagementTimelineEventsOnProject: reverted (0.0066s)
== 20211115132613 CreateIncidentManagementTimelineEvents: reverting ===========
-- drop_table(:incident_management_timeline_events)
-> 0.0028s
== 20211115132613 CreateIncidentManagementTimelineEvents: reverted (0.0028s) ==
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.