- retain relevant task order data when migrating request bodies - set revision relationship for status events - make relationship between status events and revisions not nullable
43 lines
1.2 KiB
Python
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 ###
|