When Epic is created first create sync work item first and then the Epic in same transaction
We want to ensure every single legacy Epic(i.e. every record in epics table) has a corresponding work item(i.e. a record in issues table).
In order to ensure that at the DB level we can introduce a not null constraint on the epics.issue_id
column.
Initially the constrain would be NOT VALID which would allow us to add the constraint even if some rows in the epics
table would have NULL
for issue_id
. This however would help to not introduce any new records in epics
table that would not have a corresponding Work Item.
We can only introduce that constraint after epic_creation_with_synced_work_item
is globally defaulted to on.
Another thing that we need to adapt is when a new epic is created. Currently when a new epic is created, we create the epic, then we create the issue record if epic creation was successful and then we update the epic issue_id reference with the newly created issue.
If we are to introduce the above mentioned constraint we need to change the order in which epic and issue records are created, i.e. create the issue record first so that then we can create the epic record with the corresponding issue_id right away.