mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-01-04 07:10:06 +08:00
395bd80da2
Summary: This started when I noticed that drafts weren't dissapearing from the draft list after send. This was a pretty big bug because if you ever clicked on one again and tried to re-send it would throw a 400 error saying the draft id doesn't exist. This uncovered a few fundamental issues with the DB. First of all, the reason the draft list wasn't updating was because the DB trigger that happened when we got in a new message, was being ignored since the diff contained no drafts (it's now a message). The bigger issue was that if you had a draft with only a clientId, gave it a serverId, and tried to call "save", the REPLACE INTO method would not update the old object, but rather create a second duplicate. This is because the `id` field was being used as the PRIMARY KEY, and in this case, that `id` field changed! The fix was to change the PRIMARY KEY to be the `cilent_id` instead of the `id` and use that as the REPLACE INTO index. We still need the `id` field; however, because all of our reads depend on that field usually being the serverId Fixes T3507 Test Plan: See new and updated tests Reviewers: dillon, bengotow Reviewed By: bengotow Maniphest Tasks: T3507 Differential Revision: https://phab.nylas.com/D1992 |
||
---|---|---|
.. | ||
lib | ||
spec | ||
package.json |