migrations/versions/3aec56269d7e_add_label_and_uuid.py
changeset 78 37bb8e326446
equal deleted inserted replaced
77:1b578edc1578 78:37bb8e326446
       
     1 """add label and uuid
       
     2 
       
     3 Revision ID: 3aec56269d7e
       
     4 Revises: 37eaf74e46b
       
     5 Create Date: 2014-10-28 17:17:19.017259
       
     6 
       
     7 """
       
     8 
       
     9 # revision identifiers, used by Alembic.
       
    10 revision = '3aec56269d7e'
       
    11 down_revision = '37eaf74e46b'
       
    12 
       
    13 import uuid
       
    14 
       
    15 from alembic import op
       
    16 import sqlalchemy as sa
       
    17 from sqlalchemy.dialects import postgresql
       
    18 
       
    19 def upgrade():
       
    20     op.add_column('event_session', sa.Column('label', sa.String(length=2048), nullable=True))
       
    21     op.add_column('event_session', sa.Column('uuid', postgresql.UUID(), nullable=True))
       
    22     op.create_unique_constraint(None, 'event_session', ['uuid'])
       
    23     event_session = sa.sql.table('event_session',
       
    24         sa.sql.column('id', sa.Integer),
       
    25         sa.sql.column('uuid', postgresql.UUID)
       
    26     )
       
    27     connection = op.get_bind()
       
    28     for r in connection.execute(event_session.select()):
       
    29         op.execute(event_session.update().values({'uuid':str(uuid.uuid4())}).where(event_session.c.id == r['id']))
       
    30     op.alter_column('event_session', 'uuid',
       
    31            existing_type=postgresql.UUID(),
       
    32            nullable=False)
       
    33 
       
    34 
       
    35 
       
    36 def downgrade():
       
    37     ### commands auto generated by Alembic - please adjust! ###
       
    38     op.drop_constraint("event_session_uuid_key", 'event_session')
       
    39     op.drop_column('event_session', 'uuid')
       
    40     op.drop_column('event_session', 'label')
       
    41     ### end Alembic commands ###