diff options
| author | Mark Sapiro | 2016-12-26 14:43:36 -0800 |
|---|---|---|
| committer | Mark Sapiro | 2016-12-26 14:43:36 -0800 |
| commit | 2ead4c9f0f70ac3ebd06105562579f74fa6963f1 (patch) | |
| tree | a59cf040acff390d7b5847cf08f84ff5b51dbcfb /src/mailman/database | |
| parent | 17aa36cf4a5ec2cfce7b1e6af585b0f18a82a28b (diff) | |
| download | mailman-2ead4c9f0f70ac3ebd06105562579f74fa6963f1.tar.gz mailman-2ead4c9f0f70ac3ebd06105562579f74fa6963f1.tar.zst mailman-2ead4c9f0f70ac3ebd06105562579f74fa6963f1.zip | |
Diffstat (limited to 'src/mailman/database')
| -rw-r--r-- | src/mailman/database/alembic/versions/3002bac0c25a_dmarc_attributes.py | 49 |
1 files changed, 18 insertions, 31 deletions
diff --git a/src/mailman/database/alembic/versions/3002bac0c25a_dmarc_attributes.py b/src/mailman/database/alembic/versions/3002bac0c25a_dmarc_attributes.py index 03740c947..aa2d8610d 100644 --- a/src/mailman/database/alembic/versions/3002bac0c25a_dmarc_attributes.py +++ b/src/mailman/database/alembic/versions/3002bac0c25a_dmarc_attributes.py @@ -10,8 +10,8 @@ import sqlalchemy as sa from alembic import op from mailman.database.helpers import exists_in_db -from mailman.database.types import Enum, SAUnicode -from mailman.interfaces.mailinglist import DMARCModerationAction, FromIsList +from mailman.database.types import Enum, SAUnicodeLarge +from mailman.interfaces.mailinglist import DMARCMitigateAction # revision identifiers, used by Alembic. @@ -22,62 +22,49 @@ down_revision = 'a46993b05703' def upgrade(): if not exists_in_db(op.get_bind(), 'mailinglist', - 'dmarc_moderation_action' + 'dmarc_mitigate_action' ): # SQLite may not have removed it when downgrading. It should be OK # to just test one. op.add_column('mailinglist', sa.Column( - 'dmarc_moderation_action', - Enum(DMARCModerationAction), + 'dmarc_mitigate_action', + Enum(DMARCMitigateAction), nullable=True)) op.add_column('mailinglist', sa.Column( - 'dmarc_quarantine_moderation_action', - sa.Boolean(), - nullable=True)) - op.add_column('mailinglist', sa.Column( - 'dmarc_none_moderation_action', - sa.Boolean(), + 'dmarc_mitigate_unconditionally', + sa.Boolean, nullable=True)) op.add_column('mailinglist', sa.Column( 'dmarc_moderation_notice', - SAUnicode(), + SAUnicodeLarge(), nullable=True)) op.add_column('mailinglist', sa.Column( 'dmarc_wrapped_message_text', - SAUnicode(), - nullable=True)) - op.add_column('mailinglist', sa.Column( - 'from_is_list', - Enum(FromIsList), + SAUnicodeLarge(), nullable=True)) # Now migrate the data. Don't import the table definition from the # models, it may break this migration when the model is updated in the # future (see the Alembic doc). mlist = sa.sql.table( 'mailinglist', - sa.sql.column('dmarc_moderation_action', Enum(DMARCModerationAction)), - sa.sql.column('dmarc_quarantine_moderation_action', sa.Boolean()), - sa.sql.column('dmarc_none_moderation_action', sa.Boolean()), - sa.sql.column('dmarc_moderation_notice', SAUnicode()), - sa.sql.column('dmarc_wrapped_message_text', SAUnicode()), - sa.sql.column('from_is_list', Enum(FromIsList)) + sa.sql.column('dmarc_mitigate_action', Enum(DMARCMitigateAction)), + sa.sql.column('dmarc_mitigate_unconditionally', sa.Boolean), + sa.sql.column('dmarc_moderation_notice', SAUnicodeLarge()), + sa.sql.column('dmarc_wrapped_message_text', SAUnicodeLarge()), ) # These are all new attributes so just set defaults. op.execute(mlist.update().values(dict( - dmarc_moderation_action=op.inline_literal(DMARCModerationAction.none), - dmarc_quarantine_moderation_action=op.inline_literal(True), - dmarc_none_moderation_action=op.inline_literal(False), + dmarc_mitigate_action=op.inline_literal( + DMARCMitigateAction.no_mitigation), + dmarc_mitigate_unconditionally=op.inline_literal(False), dmarc_moderation_notice=op.inline_literal(''), dmarc_wrapped_message_text=op.inline_literal(''), - from_is_list=op.inline_literal(FromIsList.none), ))) def downgrade(): with op.batch_alter_table('mailinglist') as batch_op: - batch_op.drop_column('dmarc_moderation_action') - batch_op.drop_column('dmarc_quarantine_moderation_action') - batch_op.drop_column('dmarc_none_moderation_action') + batch_op.drop_column('dmarc_mitigate_action') + batch_op.drop_column('dmarc_mitigate_unconditionally') batch_op.drop_column('dmarc_moderation_notice') batch_op.drop_column('dmarc_wrapped_message_text') - batch_op.drop_column('from_is_list') |
