Blame alembic/versions/5179e99d35a5_add_lock_types.py

Patrick Uiterwijk 7b9080
"""Add lock types
Patrick Uiterwijk 7b9080
Patrick Uiterwijk 7b9080
Revision ID: 5179e99d35a5
Patrick Uiterwijk 7b9080
Revises: d4d2c5aa8a0
Patrick Uiterwijk 7b9080
Create Date: 2017-05-30 14:47:55.063908
Patrick Uiterwijk 7b9080
Patrick Uiterwijk 7b9080
"""
Patrick Uiterwijk 7b9080
Patrick Uiterwijk 7b9080
# revision identifiers, used by Alembic.
Patrick Uiterwijk 7b9080
revision = '5179e99d35a5'
Patrick Uiterwijk 7b9080
down_revision = 'd4d2c5aa8a0'
Patrick Uiterwijk 7b9080
Patrick Uiterwijk 7b9080
from alembic import op
Patrick Uiterwijk 7b9080
import sqlalchemy as sa
Patrick Uiterwijk 7b9080
Patrick Uiterwijk 7b9080
Patrick Uiterwijk 7b9080
def upgrade():
Patrick Uiterwijk 7b9080
    op.create_table(
Patrick Uiterwijk 7b9080
        'project_locks',
Patrick Uiterwijk 7b9080
        sa.Column('project_id',
Patrick Uiterwijk 7b9080
                  sa.Integer,
Patrick Uiterwijk 7b9080
                  sa.ForeignKey(
Patrick Uiterwijk 7b9080
                    'projects.id', onupdate='CASCADE', ondelete='CASCADE'
Patrick Uiterwijk 7b9080
                  ),
Patrick Uiterwijk 7b9080
                  nullable=False,
Patrick Uiterwijk 7b9080
                  primary_key=True
Patrick Uiterwijk 7b9080
        ),
Patrick Uiterwijk 7b9080
        sa.Column('lock_type',
Patrick Uiterwijk 7b9080
                  sa.Enum(
Patrick Uiterwijk 7b9080
                    'WORKER',
Patrick Uiterwijk 7b9080
                    name='lock_type_enum'
Patrick Uiterwijk 7b9080
                  ),
Patrick Uiterwijk 7b9080
                  nullable=False,
Patrick Uiterwijk 7b9080
                  primary_key=True
Patrick Uiterwijk 7b9080
        )
Patrick Uiterwijk 7b9080
    )
Patrick Uiterwijk 7b9080
Patrick Uiterwijk 7b9080
    # Add WORKER locks everywhere
Patrick Uiterwijk 7b9080
    conn = op.get_bind()
Patrick Uiterwijk 7b9080
    conn.execute("""INSERT INTO project_locks (project_id, lock_type)
Patrick Uiterwijk 7b9080
                    SELECT id, 'WORKER' from projects""")
Patrick Uiterwijk 7b9080
Patrick Uiterwijk 7b9080
Patrick Uiterwijk 7b9080
def downgrade():
Patrick Uiterwijk 7b9080
    op.drop_table('project_locks')