Blame alembic/versions/2b1743f77436_cascade_deleting_flags_when_tokens_are_.py

Pierre-Yves Chibon 2659eb
"""Cascade deleting flags when tokens are deleted
Pierre-Yves Chibon 2659eb
Pierre-Yves Chibon 2659eb
Revision ID: 2b1743f77436
Pierre-Yves Chibon 2659eb
Revises: 5993f9240bcf
Pierre-Yves Chibon 2659eb
Create Date: 2019-01-16 13:38:34.954904
Pierre-Yves Chibon 2659eb
Pierre-Yves Chibon 2659eb
"""
Pierre-Yves Chibon 2659eb
Pierre-Yves Chibon 2659eb
from alembic import op
Pierre-Yves Chibon 2659eb
import sqlalchemy as sa
Pierre-Yves Chibon 2659eb
Pierre-Yves Chibon 2659eb
Pierre-Yves Chibon 2659eb
# revision identifiers, used by Alembic.
Pierre-Yves Chibon 2659eb
revision = '2b1743f77436'
Pierre-Yves Chibon 2659eb
down_revision = '5993f9240bcf'
Pierre-Yves Chibon 2659eb
Pierre-Yves Chibon 2659eb
Pierre-Yves Chibon 2659eb
def upgrade():
Pierre-Yves Chibon 2659eb
    """ Remove the existing foreign key in pull_request_flags.token_id and
Pierre-Yves Chibon 2659eb
    re-create it with CASCADE on delete and update.
Pierre-Yves Chibon 2659eb
    """
Pierre-Yves Chibon 2659eb
    # alter the constraints
Pierre-Yves Chibon 641bec
    op.drop_constraint(
Pierre-Yves Chibon 641bec
        'pull_request_flags_token_id_fkey', 'pull_request_flags',
Pierre-Yves Chibon 641bec
        type_='foreignkey')
Pierre-Yves Chibon 2659eb
    op.create_foreign_key(
Pierre-Yves Chibon 2659eb
        u'pull_request_flags_token_id_fkey',
Pierre-Yves Chibon 2659eb
        'pull_request_flags',
Pierre-Yves Chibon 2659eb
        'tokens',
Pierre-Yves Chibon 2659eb
        ['token_id'],
Pierre-Yves Chibon 2659eb
        ['id'],
Pierre-Yves Chibon 2659eb
        ondelete="CASCADE",
Pierre-Yves Chibon 2659eb
        onupdate="CASCADE",
Pierre-Yves Chibon 2659eb
    )
Pierre-Yves Chibon 2659eb
Pierre-Yves Chibon 2659eb
Pierre-Yves Chibon 2659eb
def downgrade():
Pierre-Yves Chibon 2659eb
    """ Remove the existing foreign key in pull_request_flags.token_id and
Pierre-Yves Chibon 2659eb
    re-create it with without specifying the behavior on delete and update.
Pierre-Yves Chibon 2659eb
    """
Pierre-Yves Chibon 641bec
    op.drop_constraint(
Pierre-Yves Chibon 641bec
        'pull_request_flags_token_id_fkey', 'pull_request_flags',
Pierre-Yves Chibon 641bec
        type_='foreignkey')
Pierre-Yves Chibon 2659eb
    op.create_foreign_key(
Pierre-Yves Chibon 2659eb
        u'pull_request_flags_token_id_fkey',
Pierre-Yves Chibon 2659eb
        'pull_request_flags',
Pierre-Yves Chibon 2659eb
        'tokens',
Pierre-Yves Chibon 2659eb
        ['token_id'],
Pierre-Yves Chibon 2659eb
        ['id'],
Pierre-Yves Chibon 2659eb
    )