Add epics.issue_id NOT NULL constraint
What does this MR do and why?
Related to #450976 (closed)
Add a NOT NULL constraint to the epics
table for the issue_id
column. We already introduced the application changes to create a work item for every new epic (!143844 (merged)), backfilled the missing data (!143844 (merged)) and finalized the BG (!152625 (merged)), as well as adding the model presence validation (!153157 (merged)).
The constraint is added as a post-migration to ensure it runs after FinalizeBackfillEpicBasicFieldsToWorkItemRecord
.
Database
20240510134106_add_epics_issue_id_not_null_constraint.rb
❯ bin/rails db:migrate:up:main VERSION=20240510134106
main: == [advisory_lock_connection] object_id: 124760, pg_backend_pid: 80055
main: == 20240510134106 AddEpicsIssueIdNotNullConstraint: migrating =================
main: -- current_schema(nil)
main: -> 0.0011s
main: -- transaction_open?(nil)
main: -> 0.0000s
main: -- transaction_open?(nil)
main: -> 0.0000s
main: -- execute("ALTER TABLE epics\nADD CONSTRAINT check_450724d1bb\nCHECK ( issue_id IS NOT NULL )\nNOT VALID;\n")
main: -> 0.0020s
main: == 20240510134106 AddEpicsIssueIdNotNullConstraint: migrated (0.0433s) ========
main: == [advisory_lock_connection] object_id: 124760, pg_backend_pid: 80055
❯ bin/rails db:migrate:down:main VERSION=20240510134106
main: == [advisory_lock_connection] object_id: 124720, pg_backend_pid: 79524
main: == 20240510134106 AddEpicsIssueIdNotNullConstraint: reverting =================
main: -- transaction_open?(nil)
main: -> 0.0000s
main: -- transaction_open?(nil)
main: -> 0.0000s
main: -- execute(" ALTER TABLE epics\n DROP CONSTRAINT IF EXISTS check_450724d1bb\n")
main: -> 0.0024s
main: == 20240510134106 AddEpicsIssueIdNotNullConstraint: reverted (0.0160s) ========
main: == [advisory_lock_connection] object_id: 124720, pg_backend_pid: 79524
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Edited by Eugenia Grieff