From d9d67df126af2e702f85e8f4171a842bbb06ff71 Mon Sep 17 00:00:00 2001 From: Son Nguyen Kim Date: Tue, 21 Sep 2021 11:15:36 +0200 Subject: [PATCH] remove unique constraint on TransactionalEmail.email --- app/email_utils.py | 4 +-- app/models.py | 2 +- .../versions/2021_092111_bc75acacc98e_.py | 29 +++++++++++++++++++ 3 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 migrations/versions/2021_092111_bc75acacc98e_.py diff --git a/app/email_utils.py b/app/email_utils.py index c55667d9..fcfa558e 100644 --- a/app/email_utils.py +++ b/app/email_utils.py @@ -298,9 +298,7 @@ def send_email( msg_raw = to_bytes(msg) - transaction = TransactionalEmail.get_by(email=to_email) - if not transaction: - transaction = TransactionalEmail.create(email=to_email, commit=True) + transaction = TransactionalEmail.create(email=to_email, commit=True) # use a different envelope sender for each transactional email (aka VERP) smtp.sendmail(TRANSACTIONAL_BOUNCE_EMAIL.format(transaction.id), to_email, msg_raw) diff --git a/app/models.py b/app/models.py index 531ffeab..c6107a01 100644 --- a/app/models.py +++ b/app/models.py @@ -2421,7 +2421,7 @@ class TransactionalEmail(db.Model, ModelMixin): Deleted after 7 days """ - email = db.Column(db.String(256), nullable=False, unique=True) + email = db.Column(db.String(256), nullable=False, unique=False) class Payout(db.Model, ModelMixin): diff --git a/migrations/versions/2021_092111_bc75acacc98e_.py b/migrations/versions/2021_092111_bc75acacc98e_.py new file mode 100644 index 00000000..4b662994 --- /dev/null +++ b/migrations/versions/2021_092111_bc75acacc98e_.py @@ -0,0 +1,29 @@ +"""empty message + +Revision ID: bc75acacc98e +Revises: 7a105bfc0cd0 +Create Date: 2021-09-21 11:15:15.573629 + +""" +import sqlalchemy_utils +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'bc75acacc98e' +down_revision = '7a105bfc0cd0' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint('transactional_email_email_key', 'transactional_email', type_='unique') + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_unique_constraint('transactional_email_email_key', 'transactional_email', ['email']) + # ### end Alembic commands ###