Ghost/core/server/data
Kevin Ansfield 76c1b60a4d
Added schema+migration for email_{batches,recipients} tables (#12192)
no issue

We want to store a list of recipients for each bulk email so that we have a consistent set of data that background processing/sending jobs can work from without worrying about moving large data sets around or member data changing mid-send.

- `email_batches` table acts as a join table with status for email<->email_recipient
  - stores a provider-specific ID that we get back when submitting a batch for sending to the bulk email provider
  - `status` allows for batch-specific status updates and picking up where we left off when submitting batches if needed
  - explicitly tying a list of email recipients to a batch allows for partial retries
- `email_recipients` table acts as a join table for email<->member
  - `member_id` does not have a foreign key constraint because members can be deleted but does have an index so that we can efficiently query which emails a member has received
  - stores static copies of the member info present at the time of sending an email for consistency in background jobs and auditing/historical data
2020-09-14 12:21:58 +01:00
..
db Moved core/server/lib/common/logging to core/shared/logging (#11857) 2020-05-28 19:30:23 +01:00
exporter Extracted core/server/lib/security to @tryghost/security package 2020-08-11 14:06:50 +01:00
importer Added handling for new members support/reply email addresses 2020-08-31 18:09:38 +05:30
migrations Added schema+migration for email_{batches,recipients} tables (#12192) 2020-09-14 12:21:58 +01:00
schema Added schema+migration for email_{batches,recipients} tables (#12192) 2020-09-14 12:21:58 +01:00
validation Improved settings validation (#12048) 2020-07-15 17:11:27 +02:00