diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2019-01-17 11:13:40 -0600 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2019-01-17 11:13:40 -0600 |
commit | 5cd733a334846669d6435517f7d9913c4a9b1eb1 (patch) | |
tree | b79c74e9f818c53c8b2a800ef500d1334f3b574f /actionmailbox/db | |
parent | 2dee59fed1e78b983aed4db53dc8fc59e49b9200 (diff) | |
download | rails-5cd733a334846669d6435517f7d9913c4a9b1eb1.tar.gz rails-5cd733a334846669d6435517f7d9913c4a9b1eb1.tar.bz2 rails-5cd733a334846669d6435517f7d9913c4a9b1eb1.zip |
Ensure Action Mailbox processes an email only once when received multiple times
This also adds a new column, message_checksum, to the action_mailbox_inbound_emails table
for storing SHA1 digest of the email source. Additionally, it makes generating the missing
message id deterministic and adds a unique index on message_checksum and message_id to
detect duplicate emails.
Diffstat (limited to 'actionmailbox/db')
-rw-r--r-- | actionmailbox/db/migrate/20180917164000_create_action_mailbox_tables.rb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/actionmailbox/db/migrate/20180917164000_create_action_mailbox_tables.rb b/actionmailbox/db/migrate/20180917164000_create_action_mailbox_tables.rb index 8cf621d7e3..e697748f82 100644 --- a/actionmailbox/db/migrate/20180917164000_create_action_mailbox_tables.rb +++ b/actionmailbox/db/migrate/20180917164000_create_action_mailbox_tables.rb @@ -2,10 +2,13 @@ class CreateActionMailboxTables < ActiveRecord::Migration[6.0] def change create_table :action_mailbox_inbound_emails do |t| t.integer :status, default: 0, null: false - t.string :message_id + t.string :message_id, null: false + t.string :message_checksum, null: false t.datetime :created_at, precision: 6, null: false t.datetime :updated_at, precision: 6, null: false + + t.index [ :message_id, :message_checksum ], unique: true end end end |