atst/alembic/versions/e66a49285f23_add_relationship_between_revision_and_.py
dandds 7ab313b100 migrations updates:
- retain relevant task order data when migrating request bodies
- set revision relationship for status events
- make relationship between status events and revisions not nullable
2018-09-04 16:15:36 -04:00

43 lines
1.2 KiB
Python

"""add relationship between revision and status event
Revision ID: e66a49285f23
Revises: 090e1bd0d7ce
Create Date: 2018-09-04 14:01:31.548665
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.orm import sessionmaker
from sqlalchemy.dialects import postgresql
from atst.models.request import Request
# revision identifiers, used by Alembic.
revision = 'e66a49285f23'
down_revision = '090e1bd0d7ce'
branch_labels = None
depends_on = None
from uuid import UUID
def upgrade():
op.add_column('request_status_events', sa.Column('request_revision_id', postgresql.UUID(as_uuid=True)))
op.create_foreign_key(None, 'request_status_events', 'request_revisions', ['request_revision_id'], ['id'])
Session = sessionmaker(bind=op.get_bind())
session = Session()
for request in session.query(Request).all():
for status in request.status_events:
status.revision = request.latest_revision
session.add(status)
session.commit()
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint(None, 'request_status_events', type_='foreignkey')
op.drop_column('request_status_events', 'request_revision_id')
# ### end Alembic commands ###