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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
78
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
"""add label and uuid
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
Revision ID: 3aec56269d7e
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
Revises: 37eaf74e46b
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
Create Date: 2014-10-28 17:17:19.017259
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
"""
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
# revision identifiers, used by Alembic.
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
revision = '3aec56269d7e'
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
down_revision = '37eaf74e46b'
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
import uuid
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
from alembic import op
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
import sqlalchemy as sa
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
from sqlalchemy.dialects import postgresql
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
def upgrade():
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
    op.add_column('event_session', sa.Column('label', sa.String(length=2048), nullable=True))
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    op.add_column('event_session', sa.Column('uuid', postgresql.UUID(), nullable=True))
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    op.create_unique_constraint(None, 'event_session', ['uuid'])
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    event_session = sa.sql.table('event_session',
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        sa.sql.column('id', sa.Integer),
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        sa.sql.column('uuid', postgresql.UUID)
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    )
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    connection = op.get_bind()
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    for r in connection.execute(event_session.select()):
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        op.execute(event_session.update().values({'uuid':str(uuid.uuid4())}).where(event_session.c.id == r['id']))
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    op.alter_column('event_session', 'uuid',
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
           existing_type=postgresql.UUID(),
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
           nullable=False)
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
def downgrade():
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
    ### commands auto generated by Alembic - please adjust! ###
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
    op.drop_constraint("event_session_uuid_key", 'event_session')
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
    op.drop_column('event_session', 'uuid')
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
    op.drop_column('event_session', 'label')
37bb8e326446 add a lable ro eventsession + add alembic migration for older databases
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
    ### end Alembic commands ###