migrations/versions/3aec56269d7e_add_label_and_uuid.py
author ymh <ymh.work@gmail.com>
Tue, 28 Oct 2014 18:11:16 +0100
changeset 78 37bb8e326446
permissions -rw-r--r--
add a lable ro eventsession + add alembic migration for older databases

"""add label and uuid

Revision ID: 3aec56269d7e
Revises: 37eaf74e46b
Create Date: 2014-10-28 17:17:19.017259

"""

# revision identifiers, used by Alembic.
revision = '3aec56269d7e'
down_revision = '37eaf74e46b'

import uuid

from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

def upgrade():
    op.add_column('event_session', sa.Column('label', sa.String(length=2048), nullable=True))
    op.add_column('event_session', sa.Column('uuid', postgresql.UUID(), nullable=True))
    op.create_unique_constraint(None, 'event_session', ['uuid'])
    event_session = sa.sql.table('event_session',
        sa.sql.column('id', sa.Integer),
        sa.sql.column('uuid', postgresql.UUID)
    )
    connection = op.get_bind()
    for r in connection.execute(event_session.select()):
        op.execute(event_session.update().values({'uuid':str(uuid.uuid4())}).where(event_session.c.id == r['id']))
    op.alter_column('event_session', 'uuid',
           existing_type=postgresql.UUID(),
           nullable=False)



def downgrade():
    ### commands auto generated by Alembic - please adjust! ###
    op.drop_constraint("event_session_uuid_key", 'event_session')
    op.drop_column('event_session', 'uuid')
    op.drop_column('event_session', 'label')
    ### end Alembic commands ###