"""add_fields_to_gras_project Revision ID: 322986bdfefe Revises: e2d4ff9617b6 Create Date: 2021-02-05 12:04:55.413966 """ from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql from migrations import utils # revision identifiers, used by Alembic. revision = '322986bdfefe' down_revision = '64ccce30ddf6' branch_labels = None depends_on = None def upgrade(): op.add_column('GRASProject', sa.Column('allocation', sa.Numeric(precision=12, scale=2), nullable=True)) op.add_column('GRASProject', sa.Column('budget', sa.Numeric(precision=12, scale=2), nullable=True)) op.add_column('GRASProject', sa.Column('end_date', sa.Date(), nullable=True)) op.add_column('GRASProject', sa.Column('source', sa.BigInteger(), nullable=False, server_default='0')) op.add_column('GRASProject', sa.Column('is_protected', sa.Boolean(), server_default='FALSE', nullable=False)) op.add_column('GRASProject', sa.Column('prs_project_code', sa.BigInteger(), nullable=True)) op.add_column('GRASProject', sa.Column('prs_title', sa.String(), nullable=True)) op.create_table('PRSBudgetGroup', sa.Column('id', sa.BigInteger(), primary_key=True), sa.Column('name', sa.String(), nullable=False), sa.PrimaryKeyConstraint('id', name=op.f('pk_PRSBudgetGroup')), ) op.create_table('PRSBudgetCategory', sa.Column('id', sa.BigInteger(), primary_key=True), sa.Column('name', sa.String(), nullable=False), sa.PrimaryKeyConstraint('id', name=op.f('pk_PRSBudgetCategory')), ) op.create_table('PRSProjectBudget', sa.Column('id', sa.BigInteger(), primary_key=True), sa.Column('gras_project_id', sa.BigInteger(), nullable=False), sa.Column('group_id', sa.BigInteger(), nullable=False), sa.Column('category_id', sa.BigInteger(), nullable=False), sa.Column('value', sa.Numeric(precision=12, scale=2), nullable=False), sa.Column('is_deleted', sa.Boolean(), server_default='FALSE', nullable=False), sa.PrimaryKeyConstraint('id', name=op.f('pk_PRSProjectBudget')), sa.ForeignKeyConstraint( ['gras_project_id'], ['GRASProject.id'], name=op.f('fk_PRSProjectBudget_gras_project_id_GRASProject'), ondelete="CASCADE"), sa.ForeignKeyConstraint( ['group_id'], ['PRSBudgetGroup.id'], name=op.f('fk_PRSProjectBudget_group_id_PRSBudgetGroup'), ondelete="CASCADE" ), sa.ForeignKeyConstraint( ['category_id'], ['PRSBudgetCategory.id'], name=op.f('fk_PRSProjectBudget_category_id_PRSBudgetCategory'), ondelete="CASCADE" ), ) op.create_table('PRSVendor', sa.Column('id', sa.BigInteger(), primary_key=True), sa.Column('name', sa.String(), nullable=False), sa.PrimaryKeyConstraint('id', name=op.f('pk_PRSVendor')), sa.UniqueConstraint('name', name=op.f('uq_PRSVendor_name')) ) op.create_table('PRSPurchaseOrder', sa.Column('id', sa.BigInteger(), primary_key=True), sa.Column('name', sa.String(), nullable=False), sa.Column('po_number', sa.BigInteger(), nullable=False), sa.Column('total_amount', sa.Numeric(precision=12, scale=2), nullable=False), sa.Column('paid_amount', sa.Numeric(precision=12, scale=2), nullable=False), sa.Column('group_id', sa.BigInteger(), nullable=False), sa.Column('category_id', sa.BigInteger(), nullable=False), sa.Column('created_date', sa.Date(), nullable=False), sa.Column('last_modified_date', sa.Date(), nullable=False), sa.Column('is_blanked', sa.Boolean(), server_default='FALSE', nullable=False), sa.Column('is_deleted', sa.Boolean(), server_default='FALSE', nullable=False), sa.Column('description', sa.String(), nullable=True), sa.Column('vendor_id', sa.BigInteger(), nullable=False), sa.Column('status', sa.Integer(), nullable=False), sa.Column('parent_po_number', sa.BigInteger(), nullable=True), sa.Column('campaign_id', sa.BigInteger(), nullable=True), sa.Column('gras_project_id', sa.BigInteger(), nullable=False), sa.PrimaryKeyConstraint('id', name=op.f('pk_PRSPurchaseOrder')), sa.ForeignKeyConstraint( ['gras_project_id'], ['GRASProject.id'], name=op.f('fk_PRSPurchaseOrder_gras_project_id_GRASProject'), ondelete="CASCADE"), sa.ForeignKeyConstraint( ['group_id'], ['PRSBudgetGroup.id'], name=op.f('fk_PRSPurchaseOrder_group_id_PRSBudgetGroup'), ondelete='CASCADE' ), sa.ForeignKeyConstraint( ['category_id'], ['PRSBudgetCategory.id'], name=op.f('fk_PRSPurchaseOrder_category_id_PRSBudgetCategory'), ondelete='CASCADE' ), sa.ForeignKeyConstraint( ['vendor_id'], ['PRSVendor.id'], name=op.f('fk_PRSPurchaseOrder_category_id_PRSVendor'), ondelete='CASCADE' ), sa.ForeignKeyConstraint( ['campaign_id'], ['Campaign.id'], name=op.f('fk_PRSPurchaseOrder_campaign_id_Campaign'), ), ) utils.import_data("PRSBudgetGroup", 'mps_group.csv') utils.import_data("PRSBudgetCategory", 'mps_category.csv') def downgrade(): op.drop_column('GRASProject', 'allocation') op.drop_column('GRASProject', 'budget') op.drop_column('GRASProject', 'end_date') op.drop_column('GRASProject', 'source') op.drop_column('GRASProject', 'is_protected') op.drop_column('GRASProject', 'prs_project_code') op.drop_column('GRASProject', 'prs_title') op.drop_table('PRSProjectBudget') op.drop_table('PRSPurchaseOrder') op.drop_table('PRSBudgetGroup') op.drop_table('PRSBudgetCategory') op.drop_table('PRSVendor')