Blob Blame Raw
"""Migrate current flag

Revision ID: 6119fbbcc8e9
Revises: 2b626a16542e
Create Date: 2017-11-16 15:11:28.199971

"""

# revision identifiers, used by Alembic.
revision = '6119fbbcc8e9'
down_revision = '2b626a16542e'

from alembic import op
import sqlalchemy as sa


def upgrade():
    """ Add the status column to pull_request_flags and migrate the data.
    """
    op.add_column(
        'pull_request_flags',
        sa.Column('status', sa.String(32), nullable=True)
    )
    op.execute(
        'UPDATE pull_request_flags SET status=\'success\' '
        'WHERE percent in (100, \'100\')')
    op.execute(
        'UPDATE pull_request_flags SET status=\'failure\' '
        'WHERE percent not in (100, \'100\')')
    op.alter_column(
        'pull_request_flags', 'status',
        nullable=False, existing_nullable=True)


def downgrade():
    """ Drop the status column in pull_request_flags.

    We can't undo the change to the status column since it may now
    contain empty rows.

    """
    op.drop_column('pull_request_flags', 'status')