diff --git a/alembic/versions/ec1ba2363191_move_defense_component_to_portfolio_.py b/alembic/versions/ec1ba2363191_move_defense_component_to_portfolio_.py new file mode 100644 index 00000000..8b84ea53 --- /dev/null +++ b/alembic/versions/ec1ba2363191_move_defense_component_to_portfolio_.py @@ -0,0 +1,52 @@ +"""Move defense component to Portfolio level + +Revision ID: ec1ba2363191 +Revises: fa3ba4049218 +Create Date: 2019-02-22 14:43:49.408446 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.sql import text + + +# revision identifiers, used by Alembic. +revision = 'ec1ba2363191' +down_revision = 'fa3ba4049218' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('portfolios', sa.Column('defense_component', sa.String(), nullable=True)) + conn = op.get_bind() + conn.execute( + text( + """ + UPDATE portfolios + SET defense_component = task_orders.defense_component + FROM task_orders + WHERE task_orders.portfolio_id = portfolios.id; + """ + ) + ) + op.drop_column('task_orders', 'defense_component') + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('task_orders', sa.Column('defense_component', sa.VARCHAR(), autoincrement=False, nullable=True)) + conn = op.get_bind() + conn.execute( + text( + """ + UPDATE task_orders + SET defense_component = portfolios.defense_component + FROM portfolios; + """ + ) + ) + op.drop_column('portfolios', 'defense_component') + # ### end Alembic commands ### diff --git a/atst/models/portfolio.py b/atst/models/portfolio.py index 83043bcd..01e9e299 100644 --- a/atst/models/portfolio.py +++ b/atst/models/portfolio.py @@ -13,6 +13,8 @@ class Portfolio(Base, mixins.TimestampsMixin, mixins.AuditableMixin): id = types.Id() name = Column(String) + defense_component = Column(String) # Department of Defense Component + applications = relationship("Application", back_populates="portfolio") roles = relationship("PortfolioRole")