Summary: While I should fix the transactional stuff, that patch is going to be
tricky and transactions have some performance implications. This is a simple
fix which prevents the race.
Instead of having the data point at the event ID, have the event point at a
data ID. Insert the data first, then insert the event with the right data
pointer. This is super simple and prevents the race issue.
Test Plan:
- Ran the schema upgrade script, verified that the database was
correctly upgraded. Was also prompted to stop daemons.
- Ran 'repository-launch-master', verified that the discovery daemons were
able to discover new commits and insert events for them. Verified the
committask daemon was consuming events and converting them into tasks.
- Verified new tasks looked correct in the database.
- Browsed web interface.
Reviewers: jungejason
CC: tuomaspelkonen
Differential Revision: 133
14 lines
364 B
SQL
14 lines
364 B
SQL
ALTER TABLE phabricator_timeline.timeline_event
|
|
ADD dataID int unsigned;
|
|
|
|
ALTER TABLE phabricator_timeline.timeline_event
|
|
ADD UNIQUE KEY (dataID);
|
|
|
|
UPDATE phabricator_timeline.timeline_event e,
|
|
phabricator_timeline.timeline_eventdata d
|
|
SET e.dataID = d.id
|
|
WHERE d.eventID = e.id;
|
|
|
|
ALTER TABLE phabricator_timeline.timeline_eventdata
|
|
DROP eventID;
|