squash migrations and use numeric type for money

This commit is contained in:
dandds 2018-12-19 10:11:31 -05:00
parent c8da258d33
commit 5fe20fab83
5 changed files with 78 additions and 179 deletions

View File

@ -0,0 +1,73 @@
"""new task order table
Revision ID: 6172ac7b8b26
Revises: 1c1394e496a7
Create Date: 2018-12-19 10:00:51.373083
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
# revision identifiers, used by Alembic.
revision = '6172ac7b8b26'
down_revision = '1c1394e496a7'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('task_orders',
sa.Column('time_created', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
sa.Column('time_updated', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False),
sa.Column('workspace_id', postgresql.UUID(as_uuid=True), nullable=True),
sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=True),
sa.Column('scope', sa.String(), nullable=True),
sa.Column('defense_component', sa.String(), nullable=True),
sa.Column('app_migration', sa.String(), nullable=True),
sa.Column('native_apps', sa.String(), nullable=True),
sa.Column('complexity', sa.ARRAY(sa.String()), nullable=True),
sa.Column('complexity_other', sa.String(), nullable=True),
sa.Column('dev_team', sa.ARRAY(sa.String()), nullable=True),
sa.Column('dev_team_other', sa.String(), nullable=True),
sa.Column('team_experience', sa.String(), nullable=True),
sa.Column('start_date', sa.Date(), nullable=True),
sa.Column('end_date', sa.Date(), nullable=True),
sa.Column('clin_01', sa.Numeric(scale=2), nullable=True),
sa.Column('clin_02', sa.Numeric(scale=2), nullable=True),
sa.Column('clin_03', sa.Numeric(scale=2), nullable=True),
sa.Column('clin_04', sa.Numeric(scale=2), nullable=True),
sa.Column('ko_first_name', sa.String(), nullable=True),
sa.Column('ko_last_name', sa.String(), nullable=True),
sa.Column('ko_email', sa.String(), nullable=True),
sa.Column('ko_dod_id', sa.String(), nullable=True),
sa.Column('cor_first_name', sa.String(), nullable=True),
sa.Column('cor_last_name', sa.String(), nullable=True),
sa.Column('cor_email', sa.String(), nullable=True),
sa.Column('cor_dod_id', sa.String(), nullable=True),
sa.Column('so_first_name', sa.String(), nullable=True),
sa.Column('so_last_name', sa.String(), nullable=True),
sa.Column('so_email', sa.String(), nullable=True),
sa.Column('so_dod_id', sa.String(), nullable=True),
sa.Column('number', sa.String(), nullable=True),
sa.Column('loa', sa.ARRAY(sa.String()), nullable=True),
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
sa.ForeignKeyConstraint(['workspace_id'], ['workspaces.id'], ),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('number')
)
op.alter_column('workspaces', 'request_id',
existing_type=postgresql.UUID(),
nullable=True)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column('workspaces', 'request_id',
existing_type=postgresql.UUID(),
nullable=False)
op.drop_table('task_orders')
# ### end Alembic commands ###

View File

@ -1,46 +0,0 @@
"""new task order table
Revision ID: a4cb6444eb4a
Revises: c457386dac86
Create Date: 2018-12-13 09:17:25.406453
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
# revision identifiers, used by Alembic.
revision = 'a4cb6444eb4a'
down_revision = 'c457386dac86'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('task_orders',
sa.Column('time_created', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
sa.Column('time_updated', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False),
sa.Column('number', sa.String(), nullable=True),
sa.Column('clin_0001', sa.Integer(), nullable=True),
sa.Column('clin_0003', sa.Integer(), nullable=True),
sa.Column('clin_1001', sa.Integer(), nullable=True),
sa.Column('clin_1003', sa.Integer(), nullable=True),
sa.Column('clin_2001', sa.Integer(), nullable=True),
sa.Column('clin_2003', sa.Integer(), nullable=True),
sa.Column('expiration_date', sa.Date(), nullable=True),
sa.Column('workspace_id', postgresql.UUID(as_uuid=True), nullable=True),
sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=True),
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
sa.ForeignKeyConstraint(['workspace_id'], ['workspaces.id'], ),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('number')
)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('task_orders')
# ### end Alembic commands ###

View File

@ -1,32 +0,0 @@
"""workspace request relationship is nullable
Revision ID: c457386dac86
Revises: 1c1394e496a7
Create Date: 2018-12-13 08:57:09.319288
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
# revision identifiers, used by Alembic.
revision = 'c457386dac86'
down_revision = '1c1394e496a7'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column('workspaces', 'request_id',
existing_type=postgresql.UUID(),
nullable=True)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column('workspaces', 'request_id',
existing_type=postgresql.UUID(),
nullable=False)
# ### end Alembic commands ###

View File

@ -1,96 +0,0 @@
"""update task order columns
Revision ID: ea06f5863083
Revises: a4cb6444eb4a
Create Date: 2018-12-14 13:19:11.956511
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'ea06f5863083'
down_revision = 'a4cb6444eb4a'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('task_orders', sa.Column('app_migration', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('clin_01', sa.Integer(), nullable=True))
op.add_column('task_orders', sa.Column('clin_02', sa.Integer(), nullable=True))
op.add_column('task_orders', sa.Column('clin_03', sa.Integer(), nullable=True))
op.add_column('task_orders', sa.Column('clin_04', sa.Integer(), nullable=True))
op.add_column('task_orders', sa.Column('complexity', sa.ARRAY(sa.String()), nullable=True))
op.add_column('task_orders', sa.Column('complexity_other', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('cor_dod_id', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('cor_email', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('cor_first_name', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('cor_last_name', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('defense_component', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('dev_team', sa.ARRAY(sa.String()), nullable=True))
op.add_column('task_orders', sa.Column('dev_team_other', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('end_date', sa.Date(), nullable=True))
op.add_column('task_orders', sa.Column('ko_dod_id', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('ko_email', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('ko_first_name', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('ko_last_name', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('loa', sa.ARRAY(sa.String()), nullable=True))
op.add_column('task_orders', sa.Column('native_apps', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('scope', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('so_dod_id', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('so_email', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('so_first_name', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('so_last_name', sa.String(), nullable=True))
op.add_column('task_orders', sa.Column('start_date', sa.Date(), nullable=True))
op.add_column('task_orders', sa.Column('team_experience', sa.String(), nullable=True))
op.drop_column('task_orders', 'expiration_date')
op.drop_column('task_orders', 'clin_1003')
op.drop_column('task_orders', 'clin_0001')
op.drop_column('task_orders', 'clin_2003')
op.drop_column('task_orders', 'clin_1001')
op.drop_column('task_orders', 'clin_2001')
op.drop_column('task_orders', 'clin_0003')
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('task_orders', sa.Column('clin_0003', sa.INTEGER(), autoincrement=False, nullable=True))
op.add_column('task_orders', sa.Column('clin_2001', sa.INTEGER(), autoincrement=False, nullable=True))
op.add_column('task_orders', sa.Column('clin_1001', sa.INTEGER(), autoincrement=False, nullable=True))
op.add_column('task_orders', sa.Column('clin_2003', sa.INTEGER(), autoincrement=False, nullable=True))
op.add_column('task_orders', sa.Column('clin_0001', sa.INTEGER(), autoincrement=False, nullable=True))
op.add_column('task_orders', sa.Column('clin_1003', sa.INTEGER(), autoincrement=False, nullable=True))
op.add_column('task_orders', sa.Column('expiration_date', sa.DATE(), autoincrement=False, nullable=True))
op.drop_column('task_orders', 'team_experience')
op.drop_column('task_orders', 'start_date')
op.drop_column('task_orders', 'so_last_name')
op.drop_column('task_orders', 'so_first_name')
op.drop_column('task_orders', 'so_email')
op.drop_column('task_orders', 'so_dod_id')
op.drop_column('task_orders', 'scope')
op.drop_column('task_orders', 'native_apps')
op.drop_column('task_orders', 'loa')
op.drop_column('task_orders', 'ko_last_name')
op.drop_column('task_orders', 'ko_first_name')
op.drop_column('task_orders', 'ko_email')
op.drop_column('task_orders', 'ko_dod_id')
op.drop_column('task_orders', 'end_date')
op.drop_column('task_orders', 'dev_team_other')
op.drop_column('task_orders', 'dev_team')
op.drop_column('task_orders', 'defense_component')
op.drop_column('task_orders', 'cor_last_name')
op.drop_column('task_orders', 'cor_first_name')
op.drop_column('task_orders', 'cor_email')
op.drop_column('task_orders', 'cor_dod_id')
op.drop_column('task_orders', 'complexity_other')
op.drop_column('task_orders', 'complexity')
op.drop_column('task_orders', 'clin_04')
op.drop_column('task_orders', 'clin_03')
op.drop_column('task_orders', 'clin_02')
op.drop_column('task_orders', 'clin_01')
op.drop_column('task_orders', 'app_migration')
# ### end Alembic commands ###

View File

@ -1,4 +1,4 @@
from sqlalchemy import Column, Integer, String, ForeignKey, Date from sqlalchemy import Column, Numeric, String, ForeignKey, Date
from sqlalchemy.types import ARRAY from sqlalchemy.types import ARRAY
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
@ -27,10 +27,10 @@ class TaskOrder(Base, mixins.TimestampsMixin):
team_experience = Column(String) # Team Experience team_experience = Column(String) # Team Experience
start_date = Column(Date) # Period of Performance start_date = Column(Date) # Period of Performance
end_date = Column(Date) end_date = Column(Date)
clin_01 = Column(Integer) # CLIN 01 : Unclassified Cloud Offerings clin_01 = Column(Numeric(scale=2))
clin_02 = Column(Integer) # CLIN 02: Classified Cloud Offerings clin_02 = Column(Numeric(scale=2))
clin_03 = Column(Integer) # CLIN 03: Unclassified Cloud Support and Assistance clin_03 = Column(Numeric(scale=2))
clin_04 = Column(Integer) # CLIN 04: Classified Cloud Support and Assistance clin_04 = Column(Numeric(scale=2))
ko_first_name = Column(String) # First Name ko_first_name = Column(String) # First Name
ko_last_name = Column(String) # Last Name ko_last_name = Column(String) # Last Name
ko_email = Column(String) # Email ko_email = Column(String) # Email