diff --git a/app/models.py b/app/models.py index ced18e390..6d8ed05e5 100644 --- a/app/models.py +++ b/app/models.py @@ -311,7 +311,7 @@ class VerifyCode(db.Model): return check_hash(cde, self._code) -NOTIFICATION_STATUS_TYPES = ['sending', 'delivered', 'pending', 'failed', +NOTIFICATION_STATUS_TYPES = ['created', 'sending', 'delivered', 'pending', 'failed', 'technical-failure', 'temporary-failure', 'permanent-failure'] @@ -348,7 +348,7 @@ class Notification(db.Model): nullable=True, onupdate=datetime.datetime.utcnow) status = db.Column( - db.Enum(*NOTIFICATION_STATUS_TYPES, name='notify_status_types'), nullable=False, default='sending') + db.Enum(*NOTIFICATION_STATUS_TYPES, name='notify_status_type'), nullable=False, default='sending') reference = db.Column(db.String, nullable=True, index=True) _personalisation = db.Column(db.String, nullable=True) diff --git a/migrations/versions/0032_notification_created_status.py b/migrations/versions/0032_notification_created_status.py new file mode 100644 index 000000000..6eefe0702 --- /dev/null +++ b/migrations/versions/0032_notification_created_status.py @@ -0,0 +1,49 @@ +"""empty message + +Revision ID: 0032_notification_created_status +Revises: 0031_store_personalisation +Create Date: 2016-06-21 11:29:28.963615 + +""" + +# revision identifiers, used by Alembic. +revision = '0032_notification_created_status' +down_revision = '0031_store_personalisation' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + ### commands auto generated by Alembic - please adjust! ### + status_type = sa.Enum('created', 'sending', 'delivered', 'pending', 'failed', + 'technical-failure', 'temporary-failure', 'permanent-failure', + name='notify_status_type') + status_type.create(op.get_bind()) + op.add_column('notifications', sa.Column('new_status', status_type, nullable=True)) + op.execute('update notifications set new_status = CAST(CAST(status as text) as notify_status_type)') + op.alter_column('notifications', 'status', new_column_name='old_status') + op.alter_column('notifications', 'new_status', new_column_name='status') + op.drop_column('notifications', 'old_status') + op.get_bind() + op.execute('DROP TYPE notify_status_types') + op.alter_column('notifications', 'status', nullable=False) + + ### end Alembic commands ### + + +def downgrade(): + ### commands auto generated by Alembic - please adjust! ### + status_type = sa.Enum('sending', 'delivered', 'pending', 'failed', + 'technical-failure', 'temporary-failure', 'permanent-failure', + name='notify_status_types') + status_type.create(op.get_bind()) + op.add_column('notifications', sa.Column('old_status', status_type, nullable=True)) + op.execute('update notifications set old_status = CAST(CAST(status as text) as notify_status_types)') + op.alter_column('notifications', 'status', new_column_name='new_status') + op.alter_column('notifications', 'old_status', new_column_name='status') + op.drop_column('notifications', 'new_status') + op.get_bind() + op.execute('DROP TYPE notify_status_type') + op.alter_column('notifications', 'status', nullable=False) + ### end Alembic commands ### \ No newline at end of file