"""shared by field Revision ID: 37ac3e669086 Revises: 9a78d10c101c Create Date: 2019-10-30 13:19:42.051595 """ from alembic import op import sqlalchemy as sa from migrations import utils from models.projects import Project from models.user_project import UserProject from models.user import User # revision identifiers, used by Alembic. revision = '37ac3e669086' down_revision = '9a78d10c101c' branch_labels = None depends_on = None class Campaign(Project): __tablename__ = "Campaign" class SharedCampaign(UserProject): __tablename__ = "SharedCampaign" def upgrade(): # ### commands auto generated by Alembic - please adjust! ### op.add_column('SharedCampaign', sa.Column('shared_by', sa.Integer(), nullable=False, server_default="1")) op.create_foreign_key(op.f('fk_SharedCampaign_shared_by_User'), 'SharedCampaign', 'User', ['shared_by'], ['id']) bind = op.get_bind() session = sa.orm.Session(bind=bind) updated_campaigns = [] shared_campaigns = session.query(SharedCampaign).all() campaigns = session.query(Campaign).filter(Campaign.id.in_([campaign.campaign_id for campaign in shared_campaigns])).all() for campaign in campaigns: for shared_campaign in shared_campaigns: if campaign.id == shared_campaign.campaign_id: user = session.query(User).filter(User.external_id == campaign.create_user_id).one() shared_campaign.shared_by = user.id updated_campaigns.append(shared_campaign) session.add_all(updated_campaigns) session.commit() session.close() # ### end Alembic commands ### def downgrade(): # ### commands auto generated by Alembic - please adjust! ### op.drop_constraint(op.f('fk_SharedCampaign_shared_by_User'), 'SharedCampaign', type_='foreignkey') op.drop_column('SharedCampaign', 'shared_by') # ### end Alembic commands ###