diff --git a/alembic/versions/014e4bceb947_add_soft_delete_to_application_and_.py b/alembic/versions/014e4bceb947_add_soft_delete_to_application_and_.py deleted file mode 100644 index 2b0a87b0..00000000 --- a/alembic/versions/014e4bceb947_add_soft_delete_to_application_and_.py +++ /dev/null @@ -1,35 +0,0 @@ -"""add soft delete to application and environment resources and roles - -Revision ID: 014e4bceb947 -Revises: 32438a35cfb5 -Create Date: 2019-04-10 09:40:37.688157 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.sql import expression - - -# revision identifiers, used by Alembic. -revision = '014e4bceb947' -down_revision = '32438a35cfb5' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('application_roles', sa.Column('deleted', sa.Boolean(), server_default=expression.false(), nullable=False)) - op.add_column('applications', sa.Column('deleted', sa.Boolean(), server_default=expression.false(), nullable=False)) - op.add_column('environment_roles', sa.Column('deleted', sa.Boolean(), server_default=expression.false(), nullable=False)) - op.add_column('environments', sa.Column('deleted', sa.Boolean(), server_default=expression.false(), nullable=False)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('environments', 'deleted') - op.drop_column('environment_roles', 'deleted') - op.drop_column('applications', 'deleted') - op.drop_column('application_roles', 'deleted') - # ### end Alembic commands ### diff --git a/alembic/versions/02d11579a581_add_email_to_invite.py b/alembic/versions/02d11579a581_add_email_to_invite.py deleted file mode 100644 index cd21df51..00000000 --- a/alembic/versions/02d11579a581_add_email_to_invite.py +++ /dev/null @@ -1,50 +0,0 @@ -"""Add email to invite - -Revision ID: 02d11579a581 -Revises: 4f46aecb337f -Create Date: 2018-11-19 14:51:33.178358 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.sql import text - - -# revision identifiers, used by Alembic. -revision = '02d11579a581' -down_revision = '4f46aecb337f' -branch_labels = None -depends_on = None - - -def upgrade(): - op.add_column('invitations', sa.Column('email', sa.String())) - conn = op.get_bind() - # Add non-null value to email column - conn.execute( - text( - """ - insert into invitations (email) - select u.email - from invitations i - inner join workspace_roles wr on i.workspace_role_id = wr.id - inner join users u on wr.user_id = u.id - where i.email is null; - """ - ) - ) - conn.execute( - text( - """ - update invitations - set email = 'example@example.com' - where email is null; - """ - ) - ) - op.alter_column('invitations', 'email', nullable=False) - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('invitations', 'email') - # ### end Alembic commands ### diff --git a/alembic/versions/0e71ab219ada_remove_portfolio_roles_role_id.py b/alembic/versions/0e71ab219ada_remove_portfolio_roles_role_id.py deleted file mode 100644 index 4c0ddcb6..00000000 --- a/alembic/versions/0e71ab219ada_remove_portfolio_roles_role_id.py +++ /dev/null @@ -1,30 +0,0 @@ -"""remove portfolio_roles role_id - -Revision ID: 0e71ab219ada -Revises: 938a31795096 -Create Date: 2019-03-12 05:58:17.029899 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '0e71ab219ada' -down_revision = '938a31795096' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint('workspace_roles_role_id_fkey', 'portfolio_roles', type_='foreignkey') - op.drop_column('portfolio_roles', 'role_id') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('portfolio_roles', sa.Column('role_id', postgresql.UUID(), autoincrement=False, nullable=True)) - op.create_foreign_key('workspace_roles_role_id_fkey', 'portfolio_roles', 'roles', ['role_id'], ['id']) - # ### end Alembic commands ### diff --git a/alembic/versions/0ff4c31c4d28_add_custom_clauses_to_task_order.py b/alembic/versions/0ff4c31c4d28_add_custom_clauses_to_task_order.py deleted file mode 100644 index 789d813b..00000000 --- a/alembic/versions/0ff4c31c4d28_add_custom_clauses_to_task_order.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Add Custom Clauses to Task Order - -Revision ID: 0ff4c31c4d28 -Revises: da9d1c911a52 -Create Date: 2019-01-30 11:28:37.193854 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '0ff4c31c4d28' -down_revision = 'da9d1c911a52' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.alter_column('task_orders', 'loa', type_=sa.String(), nullable=True) - op.add_column('task_orders', sa.Column('custom_clauses', sa.String(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('task_orders', 'custom_clauses') - op.alter_column('task_orders', 'loa', type_=sa.ARRAY(sa.String()), nullable=True) - # ### end Alembic commands ### diff --git a/alembic/versions/1880551a32e4_user_email_no_longer_unique.py b/alembic/versions/1880551a32e4_user_email_no_longer_unique.py deleted file mode 100644 index 2377d6d0..00000000 --- a/alembic/versions/1880551a32e4_user_email_no_longer_unique.py +++ /dev/null @@ -1,28 +0,0 @@ -"""User email no longer unique - -Revision ID: 1880551a32e4 -Revises: 014e4bceb947 -Create Date: 2019-04-17 10:59:10.262137 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '1880551a32e4' -down_revision = '014e4bceb947' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint('users_email_key', 'users', type_='unique') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_unique_constraint('users_email_key', 'users', ['email']) - # ### end Alembic commands ### diff --git a/alembic/versions/1c1394e496a7_change_request_foreign_key_to_task_order.py b/alembic/versions/1c1394e496a7_change_request_foreign_key_to_task_order.py deleted file mode 100644 index 725f43f7..00000000 --- a/alembic/versions/1c1394e496a7_change_request_foreign_key_to_task_order.py +++ /dev/null @@ -1,32 +0,0 @@ -"""change request foreign key to task order - -Revision ID: 1c1394e496a7 -Revises: 3dc8b7961bd1 -Create Date: 2018-12-12 14:39:25.325640 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '1c1394e496a7' -down_revision = '3dc8b7961bd1' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.alter_column("requests", "task_order_id", new_column_name="legacy_task_order_id") - op.drop_constraint('requests_task_order_id_fkey', 'requests', type_='foreignkey') - op.create_foreign_key("requests_legacy_task_order_fkey", 'requests', 'legacy_task_orders', ['legacy_task_order_id'], ['id']) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.alter_column("requests", "legacy_task_order_id", new_column_name="task_order_id") - op.drop_constraint("requests_legacy_task_order_fkey" 'requests', type_='foreignkey') - op.create_foreign_key('requests_task_order_id_fkey', 'requests', 'legacy_task_orders', ['task_order_id'], ['id']) - # ### end Alembic commands ### diff --git a/alembic/versions/1f690989e38e_add_pdf_to_task_order.py b/alembic/versions/1f690989e38e_add_pdf_to_task_order.py deleted file mode 100644 index c22926da..00000000 --- a/alembic/versions/1f690989e38e_add_pdf_to_task_order.py +++ /dev/null @@ -1,36 +0,0 @@ -"""Add PDF to Task Order - -Revision ID: 1f690989e38e -Revises: 0ff4c31c4d28 -Create Date: 2019-02-04 15:56:57.642156 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '1f690989e38e' -down_revision = '0ff4c31c4d28' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('task_orders', sa.Column('pdf_attachment_id', postgresql.UUID(as_uuid=True), nullable=True)) - op.drop_constraint('task_orders_attachments_attachment_id', 'task_orders', type_='foreignkey') - op.alter_column('task_orders', 'attachment_id', new_column_name='csp_attachment_id') - op.create_foreign_key('task_orders_attachments_pdf_attachment_id', 'task_orders', 'attachments', ['pdf_attachment_id'], ['id']) - op.create_foreign_key('task_orders_attachments_csp_attachment_id', 'task_orders', 'attachments', ['csp_attachment_id'], ['id']) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint('task_orders_attachments_csp_attachment_id', 'task_orders', type_='foreignkey') - op.drop_constraint('task_orders_attachments_pdf_attachment_id', 'task_orders', type_='foreignkey') - op.alter_column('task_orders', 'csp_attachment_id', new_column_name='attachment_id') - op.create_foreign_key('task_orders_attachments_attachment_id', 'task_orders', 'attachments', ['attachment_id'], ['id']) - op.drop_column('task_orders', 'pdf_attachment_id') - # ### end Alembic commands ### diff --git a/alembic/versions/24700d113ea9_add_clin_table.py b/alembic/versions/24700d113ea9_add_clin_table.py deleted file mode 100644 index 452d634f..00000000 --- a/alembic/versions/24700d113ea9_add_clin_table.py +++ /dev/null @@ -1,40 +0,0 @@ -"""add clin table - -Revision ID: 24700d113ea9 -Revises: d73cba9a4259 -Create Date: 2019-05-31 10:28:20.983200 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '24700d113ea9' -down_revision = 'd73cba9a4259' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('clins', - 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('task_order_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('number', sa.String(), nullable=False), - sa.Column('loas', postgresql.ARRAY(sa.String()), server_default='{}', nullable=False), - sa.Column('start_date', sa.Date(), nullable=False), - sa.Column('end_date', sa.Date(), nullable=False), - sa.Column('obligated_amount', sa.Numeric(scale=2), nullable=False), - sa.ForeignKeyConstraint(['task_order_id'], ['task_orders.id'], ), - sa.PrimaryKeyConstraint('id') - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('clins') - # ### end Alembic commands ### diff --git a/alembic/versions/32438a35cfb5_add_application_roles.py b/alembic/versions/32438a35cfb5_add_application_roles.py deleted file mode 100644 index 1d4de573..00000000 --- a/alembic/versions/32438a35cfb5_add_application_roles.py +++ /dev/null @@ -1,59 +0,0 @@ -"""add application_roles - -Revision ID: 32438a35cfb5 -Revises: 49e12ae7c9ca -Create Date: 2019-04-04 06:49:57.693753 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '32438a35cfb5' -down_revision = '49e12ae7c9ca' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('application_roles', - 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('application_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('status', sa.Enum('ACTIVE', 'DISABLED', 'PENDING', name='status', native_enum=False), nullable=True), - sa.ForeignKeyConstraint(['application_id'], ['applications.id'], ), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_index('application_role_user_application', 'application_roles', ['user_id', 'application_id'], unique=True) - op.create_index(op.f('ix_application_roles_application_id'), 'application_roles', ['application_id'], unique=False) - op.create_index(op.f('ix_application_roles_user_id'), 'application_roles', ['user_id'], unique=False) - op.create_table('application_roles_permission_sets', - sa.Column('application_role_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('permission_set_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.ForeignKeyConstraint(['application_role_id'], ['application_roles.id'], ), - sa.ForeignKeyConstraint(['permission_set_id'], ['permission_sets.id'], ) - ) - op.create_index(op.f('ix_permission_sets_name'), 'permission_sets', ['name'], unique=True) - op.create_index(op.f('ix_permission_sets_permissions'), 'permission_sets', ['permissions'], unique=False) - op.drop_index('ix_roles_name', table_name='permission_sets') - op.drop_index('ix_roles_permissions', table_name='permission_sets') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_index('ix_roles_permissions', 'permission_sets', ['permissions'], unique=False) - op.create_index('ix_roles_name', 'permission_sets', ['name'], unique=True) - op.drop_index(op.f('ix_permission_sets_permissions'), table_name='permission_sets') - op.drop_index(op.f('ix_permission_sets_name'), table_name='permission_sets') - op.drop_table('application_roles_permission_sets') - op.drop_index(op.f('ix_application_roles_user_id'), table_name='application_roles') - op.drop_index(op.f('ix_application_roles_application_id'), table_name='application_roles') - op.drop_index('application_role_user_application', table_name='application_roles') - op.drop_table('application_roles') - # ### end Alembic commands ### diff --git a/alembic/versions/359caaf8c5f1_initial.py b/alembic/versions/359caaf8c5f1_initial.py deleted file mode 100644 index 97622fb0..00000000 --- a/alembic/versions/359caaf8c5f1_initial.py +++ /dev/null @@ -1,279 +0,0 @@ -"""initial - -Revision ID: 359caaf8c5f1 -Revises: -Create Date: 2018-09-20 10:25:44.438679 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '359caaf8c5f1' -down_revision = None -branch_labels = None -depends_on = None - - -def upgrade(): - connection = op.get_bind() - connection.execute('CREATE EXTENSION IF NOT EXISTS "uuid-ossp"') - - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('attachments', - 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('filename', sa.String(), nullable=False), - sa.Column('object_name', sa.String(), nullable=False), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('object_name') - ) - op.create_table('pe_numbers', - sa.Column('number', sa.String(), nullable=False), - sa.Column('description', sa.String(), nullable=True), - sa.PrimaryKeyConstraint('number') - ) - op.create_table('roles', - 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('name', sa.String(), nullable=False), - sa.Column('description', sa.String(), nullable=False), - sa.Column('permissions', postgresql.ARRAY(sa.String()), server_default='{}', nullable=False), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_roles_name'), 'roles', ['name'], unique=True) - op.create_index(op.f('ix_roles_permissions'), 'roles', ['permissions'], unique=False) - 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('source', sa.Enum('MANUAL', 'EDA', name='source', native_enum=False), nullable=True), - sa.Column('funding_type', sa.Enum('RDTE', 'OM', 'PROC', 'OTHER', name='fundingtype', native_enum=False), nullable=True), - sa.Column('funding_type_other', 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('attachment_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.ForeignKeyConstraint(['attachment_id'], ['attachments.id'], ), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('number') - ) - op.create_table('users', - 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('username', sa.String(), nullable=True), - sa.Column('atat_role_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('email', sa.String(), nullable=True), - sa.Column('dod_id', sa.String(), nullable=False), - sa.Column('first_name', sa.String(), nullable=True), - sa.Column('last_name', sa.String(), nullable=True), - sa.ForeignKeyConstraint(['atat_role_id'], ['roles.id'], ), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('dod_id'), - sa.UniqueConstraint('email') - ) - op.create_table('request_reviews', - 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('user_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('comment', sa.String(), nullable=True), - sa.Column('fname_mao', sa.String(), nullable=True), - sa.Column('lname_mao', sa.String(), nullable=True), - sa.Column('email_mao', sa.String(), nullable=True), - sa.Column('phone_mao', sa.String(), nullable=True), - sa.Column('fname_ccpo', sa.String(), nullable=True), - sa.Column('lname_ccpo', sa.String(), nullable=True), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('requests', - 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('time_created', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True), - sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('task_order_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.ForeignKeyConstraint(['task_order_id'], ['task_orders.id'], ), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('request_internal_comments', - 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('text', sa.String(), nullable=False), - sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('request_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.ForeignKeyConstraint(['request_id'], ['requests.id'], ondelete='CASCADE'), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('request_revisions', - 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('request_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('sequence', sa.BigInteger(), nullable=False), - sa.Column('am_poc', sa.Boolean(), nullable=True), - sa.Column('dodid_poc', sa.String(), nullable=True), - sa.Column('email_poc', sa.String(), nullable=True), - sa.Column('fname_poc', sa.String(), nullable=True), - sa.Column('lname_poc', sa.String(), nullable=True), - sa.Column('jedi_usage', sa.String(), nullable=True), - sa.Column('start_date', sa.Date(), nullable=True), - sa.Column('cloud_native', sa.String(), nullable=True), - sa.Column('dollar_value', sa.Integer(), nullable=True), - sa.Column('dod_component', sa.String(), nullable=True), - sa.Column('data_transfers', sa.String(), nullable=True), - sa.Column('expected_completion_date', sa.String(), nullable=True), - sa.Column('jedi_migration', sa.String(), nullable=True), - sa.Column('num_software_systems', sa.Integer(), nullable=True), - sa.Column('number_user_sessions', sa.Integer(), nullable=True), - sa.Column('average_daily_traffic', sa.Integer(), nullable=True), - sa.Column('engineering_assessment', sa.String(), nullable=True), - sa.Column('technical_support_team', sa.String(), nullable=True), - sa.Column('estimated_monthly_spend', sa.Integer(), nullable=True), - sa.Column('average_daily_traffic_gb', sa.Integer(), nullable=True), - sa.Column('rationalization_software_systems', sa.String(), nullable=True), - sa.Column('organization_providing_assistance', sa.String(), nullable=True), - sa.Column('name', sa.String(), nullable=True), - sa.Column('citizenship', sa.String(), nullable=True), - sa.Column('designation', sa.String(), nullable=True), - sa.Column('phone_number', sa.String(), nullable=True), - sa.Column('email_request', sa.String(), nullable=True), - sa.Column('fname_request', sa.String(), nullable=True), - sa.Column('lname_request', sa.String(), nullable=True), - sa.Column('service_branch', sa.String(), nullable=True), - sa.Column('date_latest_training', sa.Date(), nullable=True), - sa.Column('pe_id', sa.String(), nullable=True), - sa.Column('task_order_number', sa.String(), nullable=True), - sa.Column('fname_co', sa.String(), nullable=True), - sa.Column('lname_co', sa.String(), nullable=True), - sa.Column('email_co', sa.String(), nullable=True), - sa.Column('office_co', sa.String(), nullable=True), - sa.Column('fname_cor', sa.String(), nullable=True), - sa.Column('lname_cor', sa.String(), nullable=True), - sa.Column('email_cor', sa.String(), nullable=True), - sa.Column('office_cor', sa.String(), nullable=True), - sa.Column('uii_ids', postgresql.ARRAY(sa.String()), nullable=True), - sa.Column('treasury_code', sa.String(), nullable=True), - sa.Column('ba_code', sa.String(), nullable=True), - sa.ForeignKeyConstraint(['request_id'], ['requests.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('workspaces', - 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('name', sa.String(), nullable=True), - sa.Column('request_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.ForeignKeyConstraint(['request_id'], ['requests.id'], ), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('name') - ) - op.create_table('projects', - 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('name', sa.String(), nullable=False), - sa.Column('description', sa.String(), nullable=False), - sa.Column('workspace_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.ForeignKeyConstraint(['workspace_id'], ['workspaces.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('request_status_events', - 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('new_status', sa.Enum('STARTED', 'SUBMITTED', 'PENDING_FINANCIAL_VERIFICATION', 'PENDING_CCPO_ACCEPTANCE', 'PENDING_CCPO_APPROVAL', 'CHANGES_REQUESTED', 'CHANGES_REQUESTED_TO_FINVER', 'APPROVED', 'EXPIRED', 'DELETED', name='requeststatus', native_enum=False), nullable=True), - sa.Column('time_created', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True), - sa.Column('request_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('sequence', sa.BigInteger(), nullable=False), - sa.Column('request_revision_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('request_review_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.ForeignKeyConstraint(['request_id'], ['requests.id'], ondelete='CASCADE'), - sa.ForeignKeyConstraint(['request_review_id'], ['request_reviews.id'], ), - sa.ForeignKeyConstraint(['request_revision_id'], ['request_revisions.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('workspace_roles', - 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=False), - sa.Column('role_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.ForeignKeyConstraint(['role_id'], ['roles.id'], ), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), - sa.ForeignKeyConstraint(['workspace_id'], ['workspaces.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_workspace_roles_user_id'), 'workspace_roles', ['user_id'], unique=False) - op.create_index(op.f('ix_workspace_roles_workspace_id'), 'workspace_roles', ['workspace_id'], unique=False) - op.create_index('workspace_role_user_workspace', 'workspace_roles', ['user_id', 'workspace_id'], unique=True) - op.create_table('environments', - 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('name', sa.String(), nullable=False), - sa.Column('project_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.ForeignKeyConstraint(['project_id'], ['projects.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('environment_roles', - 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('environment_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('role', sa.String(), nullable=True), - sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.ForeignKeyConstraint(['environment_id'], ['environments.id'], ), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_index('environments_role_user_environment', 'environment_roles', ['user_id', 'environment_id'], unique=True) - # ### end Alembic commands ### - - connection.execute( - "CREATE SEQUENCE request_status_events_sequence_seq OWNED BY request_status_events.sequence;" - ) - connection.execute( - "CREATE SEQUENCE request_revisions_sequence_seq OWNED BY request_revisions.sequence;" - ) - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_index('environments_role_user_environment', table_name='environment_roles') - op.drop_table('environment_roles') - op.drop_table('environments') - op.drop_index('workspace_role_user_workspace', table_name='workspace_roles') - op.drop_index(op.f('ix_workspace_roles_workspace_id'), table_name='workspace_roles') - op.drop_index(op.f('ix_workspace_roles_user_id'), table_name='workspace_roles') - op.drop_table('workspace_roles') - op.drop_table('request_status_events') - op.drop_table('projects') - op.drop_table('workspaces') - op.drop_table('request_revisions') - op.drop_table('request_internal_comments') - op.drop_table('requests') - op.drop_table('request_reviews') - op.drop_table('users') - op.drop_table('task_orders') - op.drop_index(op.f('ix_roles_permissions'), table_name='roles') - op.drop_index(op.f('ix_roles_name'), table_name='roles') - op.drop_table('roles') - op.drop_table('pe_numbers') - op.drop_table('attachments') - # ### end Alembic commands ### - - connection = op.get_bind() - connection.execute('DROP EXTENSION IF EXISTS "uuid-ossp"') diff --git a/alembic/versions/3777e9e39644_add_indexes.py b/alembic/versions/3777e9e39644_add_indexes.py deleted file mode 100644 index a48bfb4d..00000000 --- a/alembic/versions/3777e9e39644_add_indexes.py +++ /dev/null @@ -1,46 +0,0 @@ -"""Add indexes - -Revision ID: 3777e9e39644 -Revises: fa3ba4049218 -Create Date: 2019-02-20 15:57:44.531311 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '3777e9e39644' -down_revision = 'fa3ba4049218' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_index(op.f('ix_audit_events_portfolio_id'), 'audit_events', ['portfolio_id'], unique=False) - op.drop_index('ix_audit_events_workspace_id', table_name='audit_events') - op.create_index(op.f('ix_invitations_portfolio_role_id'), 'invitations', ['portfolio_role_id'], unique=False) - op.drop_index('ix_invitations_workspace_role_id', table_name='invitations') - op.create_index(op.f('ix_portfolio_roles_portfolio_id'), 'portfolio_roles', ['portfolio_id'], unique=False) - op.create_index(op.f('ix_portfolio_roles_user_id'), 'portfolio_roles', ['user_id'], unique=False) - op.create_index('portfolio_role_user_portfolio', 'portfolio_roles', ['user_id', 'portfolio_id'], unique=True) - op.drop_index('ix_workspace_roles_user_id', table_name='portfolio_roles') - op.drop_index('ix_workspace_roles_workspace_id', table_name='portfolio_roles') - op.drop_index('workspace_role_user_workspace', table_name='portfolio_roles') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_index('workspace_role_user_workspace', 'portfolio_roles', ['user_id', 'portfolio_id'], unique=True) - op.create_index('ix_workspace_roles_workspace_id', 'portfolio_roles', ['portfolio_id'], unique=False) - op.create_index('ix_workspace_roles_user_id', 'portfolio_roles', ['user_id'], unique=False) - op.drop_index('portfolio_role_user_portfolio', table_name='portfolio_roles') - op.drop_index(op.f('ix_portfolio_roles_user_id'), table_name='portfolio_roles') - op.drop_index(op.f('ix_portfolio_roles_portfolio_id'), table_name='portfolio_roles') - op.create_index('ix_invitations_workspace_role_id', 'invitations', ['portfolio_role_id'], unique=False) - op.drop_index(op.f('ix_invitations_portfolio_role_id'), table_name='invitations') - op.create_index('ix_audit_events_workspace_id', 'audit_events', ['portfolio_id'], unique=False) - op.drop_index(op.f('ix_audit_events_portfolio_id'), table_name='audit_events') - # ### end Alembic commands ### diff --git a/alembic/versions/3d346b5c8f19_add_status_enum_to_task_order.py b/alembic/versions/3d346b5c8f19_add_status_enum_to_task_order.py deleted file mode 100644 index 61ffe84b..00000000 --- a/alembic/versions/3d346b5c8f19_add_status_enum_to_task_order.py +++ /dev/null @@ -1,31 +0,0 @@ -"""Add status enum to task_order - -Revision ID: 3d346b5c8f19 -Revises: 71cbe76c3b87 -Create Date: 2019-01-10 13:55:58.934890 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '3d346b5c8f19' -down_revision = '71cbe76c3b87' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('task_orders', sa.Column('status', sa.Enum('PENDING', name='status', native_enum=False), nullable=True)) - # ### end Alembic commands ### - - conn = op.get_bind() - conn.execute("UPDATE task_orders set status = 'PENDING'") - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('task_orders', 'status') - # ### end Alembic commands ### diff --git a/alembic/versions/3d3c71b03e98_nullable_fields_for_clins.py b/alembic/versions/3d3c71b03e98_nullable_fields_for_clins.py deleted file mode 100644 index dfd0702f..00000000 --- a/alembic/versions/3d3c71b03e98_nullable_fields_for_clins.py +++ /dev/null @@ -1,43 +0,0 @@ -"""Nullable fields for CLINs - - -Revision ID: 3d3c71b03e98 -Revises: b565531a1e82 -Create Date: 2019-06-17 11:04:03.294913 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '3d3c71b03e98' -down_revision = 'b565531a1e82' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.alter_column('clins', 'end_date', - existing_type=sa.DATE(), - nullable=True) - op.alter_column('clins', 'jedi_clin_type', - existing_type=sa.VARCHAR(length=11), - nullable=True) - op.alter_column('clins', 'loas', - existing_type=postgresql.ARRAY(sa.VARCHAR()), - nullable=True, - existing_server_default=sa.text("'{}'::character varying[]")) - op.alter_column('clins', 'number', - existing_type=sa.VARCHAR(), - nullable=True) - op.alter_column('clins', 'obligated_amount', - existing_type=sa.NUMERIC(), - nullable=True) - op.alter_column('clins', 'start_date', - existing_type=sa.DATE(), - nullable=True) - # ### end Alembic commands ### - - diff --git a/alembic/versions/3dc8b7961bd1_rename_task_orders.py b/alembic/versions/3dc8b7961bd1_rename_task_orders.py deleted file mode 100644 index 7cfb2478..00000000 --- a/alembic/versions/3dc8b7961bd1_rename_task_orders.py +++ /dev/null @@ -1,24 +0,0 @@ -"""rename task orders - -Revision ID: 3dc8b7961bd1 -Revises: c222327c3963 -Create Date: 2018-12-12 13:17:25.728679 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '3dc8b7961bd1' -down_revision = 'c222327c3963' -branch_labels = None -depends_on = None - - -def upgrade(): - op.rename_table("task_orders", "legacy_task_orders") - - -def downgrade(): - op.rename_table("legacy_task_orders", "task_orders") diff --git a/alembic/versions/404bb5bb3a0e_add_notification_recipients.py b/alembic/versions/404bb5bb3a0e_add_notification_recipients.py deleted file mode 100644 index b8127705..00000000 --- a/alembic/versions/404bb5bb3a0e_add_notification_recipients.py +++ /dev/null @@ -1,34 +0,0 @@ -"""add_notification_recipients - -Revision ID: 404bb5bb3a0e -Revises: 432c5287256d -Create Date: 2019-05-10 15:25:22.627996 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '404bb5bb3a0e' -down_revision = '432c5287256d' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('notification_recipients', - 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('email', sa.String(), nullable=False), - sa.PrimaryKeyConstraint('id') - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('notification_recipients') - # ### end Alembic commands ### diff --git a/alembic/versions/432c5287256d_add_application_invitation.py b/alembic/versions/432c5287256d_add_application_invitation.py deleted file mode 100644 index fac3b326..00000000 --- a/alembic/versions/432c5287256d_add_application_invitation.py +++ /dev/null @@ -1,69 +0,0 @@ -"""add application_invitation - -Revision ID: 432c5287256d -Revises: 1880551a32e4 -Create Date: 2019-04-23 09:23:05.738680 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '432c5287256d' -down_revision = '1880551a32e4' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.rename_table('invitations', 'portfolio_invitations') - op.create_table('application_invitations', - 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('status', sa.Enum('ACCEPTED', 'REVOKED', 'PENDING', 'REJECTED_WRONG_USER', 'REJECTED_EXPIRED', name='status', native_enum=False), nullable=True), - sa.Column('expiration_time', sa.TIMESTAMP(timezone=True), nullable=True), - sa.Column('token', sa.String(), nullable=True), - sa.Column('email', sa.String(), nullable=False), - sa.Column('application_role_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('inviter_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.ForeignKeyConstraint(['application_role_id'], ['application_roles.id'], ), - sa.ForeignKeyConstraint(['inviter_id'], ['users.id'], ), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_application_invitations_application_role_id'), 'application_invitations', ['application_role_id'], unique=False) - op.create_index(op.f('ix_application_invitations_inviter_id'), 'application_invitations', ['inviter_id'], unique=False) - op.create_index(op.f('ix_application_invitations_token'), 'application_invitations', ['token'], unique=False) - op.create_index(op.f('ix_application_invitations_user_id'), 'application_invitations', ['user_id'], unique=False) - op.drop_index('ix_invitations_inviter_id', table_name='invitations') - op.drop_index('ix_invitations_portfolio_role_id', table_name='invitations') - op.drop_index('ix_invitations_token', table_name='invitations') - op.drop_index('ix_invitations_user_id', table_name='invitations') - op.create_index(op.f('ix_portfolio_invitations_inviter_id'), 'portfolio_invitations', ['inviter_id'], unique=False) - op.create_index(op.f('ix_portfolio_invitations_portfolio_role_id'), 'portfolio_invitations', ['portfolio_role_id'], unique=False) - op.create_index(op.f('ix_portfolio_invitations_token'), 'portfolio_invitations', ['token'], unique=False) - op.create_index(op.f('ix_portfolio_invitations_user_id'), 'portfolio_invitations', ['user_id'], unique=False) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.rename_table('portfolio_invitations', 'invitations') - op.drop_index(op.f('ix_application_invitations_user_id'), table_name='application_invitations') - op.drop_index(op.f('ix_application_invitations_token'), table_name='application_invitations') - op.drop_index(op.f('ix_application_invitations_inviter_id'), table_name='application_invitations') - op.drop_index(op.f('ix_application_invitations_application_role_id'), table_name='application_invitations') - op.drop_table('application_invitations') - op.drop_index(op.f('ix_portfolio_invitations_user_id'), table_name='portfolio_invitations') - op.drop_index(op.f('ix_portfolio_invitations_token'), table_name='portfolio_invitations') - op.drop_index(op.f('ix_portfolio_invitations_portfolio_role_id'), table_name='portfolio_invitations') - op.drop_index(op.f('ix_portfolio_invitations_inviter_id'), table_name='portfolio_invitations') - op.create_index('ix_invitations_user_id', 'invitations', ['user_id'], unique=False) - op.create_index('ix_invitations_token', 'invitations', ['token'], unique=False) - op.create_index('ix_invitations_portfolio_role_id', 'invitations', ['portfolio_role_id'], unique=False) - op.create_index('ix_invitations_inviter_id', 'invitations', ['inviter_id'], unique=False) - # ### end Alembic commands ### diff --git a/alembic/versions/4536f50b25bc_add_columns_to_task_order.py b/alembic/versions/4536f50b25bc_add_columns_to_task_order.py deleted file mode 100644 index b6917329..00000000 --- a/alembic/versions/4536f50b25bc_add_columns_to_task_order.py +++ /dev/null @@ -1,32 +0,0 @@ -"""add funding columns to task order - -Revision ID: 4536f50b25bc -Revises: 3d346b5c8f19 -Create Date: 2019-01-10 14:24:03.101309 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '4536f50b25bc' -down_revision = '3d346b5c8f19' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('task_orders', sa.Column('attachment_id', postgresql.UUID(as_uuid=True), nullable=True)) - op.add_column('task_orders', sa.Column('performance_length', sa.Integer(), nullable=True)) - op.create_foreign_key('task_orders_attachments_attachment_id', 'task_orders', 'attachments', ['attachment_id'], ['id']) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint('task_orders_attachments_attachment_id', 'task_orders', type_='foreignkey') - op.drop_column('task_orders', 'performance_length') - op.drop_column('task_orders', 'attachment_id') - # ### end Alembic commands ### diff --git a/alembic/versions/49e12ae7c9ca_add_last_login_to_user.py b/alembic/versions/49e12ae7c9ca_add_last_login_to_user.py deleted file mode 100644 index 5c49b24b..00000000 --- a/alembic/versions/49e12ae7c9ca_add_last_login_to_user.py +++ /dev/null @@ -1,28 +0,0 @@ -"""add last login to user - -Revision ID: 49e12ae7c9ca -Revises: fc08d99bb7f7 -Create Date: 2019-03-28 15:46:58.226281 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '49e12ae7c9ca' -down_revision = 'fc08d99bb7f7' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('users', sa.Column('last_login', sa.TIMESTAMP(timezone=True), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('users', 'last_login') - # ### end Alembic commands ### diff --git a/alembic/versions/4c0b8263d800_add_phone_extension.py b/alembic/versions/4c0b8263d800_add_phone_extension.py deleted file mode 100644 index 583cbe14..00000000 --- a/alembic/versions/4c0b8263d800_add_phone_extension.py +++ /dev/null @@ -1,32 +0,0 @@ -"""Add Phone Extension - -Revision ID: 4c0b8263d800 -Revises: ea8b5681b37c -Create Date: 2018-10-29 11:14:01.332665 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '4c0b8263d800' -down_revision = 'ea8b5681b37c' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('request_reviews', sa.Column('phone_ext_mao', sa.String(), nullable=True)) - op.add_column('request_revisions', sa.Column('phone_ext', sa.String(), nullable=True)) - op.add_column('users', sa.Column('phone_ext', sa.String(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('users', 'phone_ext') - op.drop_column('request_revisions', 'phone_ext') - op.drop_column('request_reviews', 'phone_ext_mao') - # ### end Alembic commands ### diff --git a/alembic/versions/4f46aecb337f_add_columns_to_auditevent.py b/alembic/versions/4f46aecb337f_add_columns_to_auditevent.py deleted file mode 100644 index 03548f42..00000000 --- a/alembic/versions/4f46aecb337f_add_columns_to_auditevent.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Add columns to AuditEvent - -Revision ID: 4f46aecb337f -Revises: 4c0b8263d800 -Create Date: 2018-11-12 16:03:55.281648 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '4f46aecb337f' -down_revision = '4c0b8263d800' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('audit_events', sa.Column('changed_state', postgresql.JSON(astext_type=sa.Text()), nullable=True)) - op.add_column('audit_events', sa.Column('event_details', postgresql.JSON(astext_type=sa.Text()), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('audit_events', 'event_details') - op.drop_column('audit_events', 'changed_state') - # ### end Alembic commands ### diff --git a/alembic/versions/5284ac1ac77c_add_provisional_column_to_users.py b/alembic/versions/5284ac1ac77c_add_provisional_column_to_users.py deleted file mode 100644 index 7078b713..00000000 --- a/alembic/versions/5284ac1ac77c_add_provisional_column_to_users.py +++ /dev/null @@ -1,28 +0,0 @@ -"""add provisional column to users - -Revision ID: 5284ac1ac77c -Revises: e0fc3cd315c1 -Create Date: 2018-10-25 11:04:49.879393 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '5284ac1ac77c' -down_revision = 'e0fc3cd315c1' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('users', sa.Column('provisional', sa.Boolean(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('users', 'provisional') - # ### end Alembic commands ### diff --git a/alembic/versions/6172ac7b8b26_new_task_order_table.py b/alembic/versions/6172ac7b8b26_new_task_order_table.py deleted file mode 100644 index 8f91da11..00000000 --- a/alembic/versions/6172ac7b8b26_new_task_order_table.py +++ /dev/null @@ -1,78 +0,0 @@ -"""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! ### - conn = op.get_bind() - conn.execute("DELETE FROM workspace_roles wr USING workspaces w WHERE w.id=wr.workspace_id AND w.request_id IS NULL") - conn.execute("DELETE FROM audit_events ae USING workspaces w WHERE w.id=ae.workspace_id AND w.request_id IS NULL") - conn.execute("DELETE FROM task_orders tasks USING workspaces w WHERE w.id=tasks.workspace_id AND w.request_id IS NULL") - conn.execute("DELETE FROM workspaces WHERE request_id IS NULL") - op.alter_column('workspaces', 'request_id', - existing_type=postgresql.UUID(), - nullable=False) - op.drop_table('task_orders') - # ### end Alembic commands ### diff --git a/alembic/versions/6512aa8d4641_default_boolean_fields_to_false.py b/alembic/versions/6512aa8d4641_default_boolean_fields_to_false.py deleted file mode 100644 index 180ef5d5..00000000 --- a/alembic/versions/6512aa8d4641_default_boolean_fields_to_false.py +++ /dev/null @@ -1,29 +0,0 @@ -"""Default Boolean fields to False - -Revision ID: 6512aa8d4641 -Revises: ec1ba2363191 -Create Date: 2019-02-27 13:22:03.863516 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '6512aa8d4641' -down_revision = 'ec1ba2363191' -branch_labels = None -depends_on = None - - -def upgrade(): - op.alter_column('task_orders', 'cor_invite', type_=sa.Boolean(), server_default=False) - op.alter_column('task_orders', 'ko_invite', type_=sa.Boolean(), server_default=False) - op.alter_column('task_orders', 'so_invite', type_=sa.Boolean(), server_default=False) - op.alter_column('task_orders', 'unlimited_level_of_warrant', type_=sa.Boolean(), server_default=False) - -def downgrade(): - op.alter_column('task_orders', 'cor_invite', type_=sa.Boolean(), server_default=None) - op.alter_column('task_orders', 'ko_invite', type_=sa.Boolean(), server_default=None) - op.alter_column('task_orders', 'so_invite', type_=sa.Boolean(), server_default=None) - op.alter_column('task_orders', 'unlimited_level_of_warrant', type_=sa.Boolean(), server_default=None) diff --git a/alembic/versions/71cbe76c3b87_add_officers_to_task_order.py b/alembic/versions/71cbe76c3b87_add_officers_to_task_order.py deleted file mode 100644 index 187f2649..00000000 --- a/alembic/versions/71cbe76c3b87_add_officers_to_task_order.py +++ /dev/null @@ -1,38 +0,0 @@ -"""add officers to task order - -Revision ID: 71cbe76c3b87 -Revises: 91bd9482ce23 -Create Date: 2019-01-04 10:16:50.062349 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '71cbe76c3b87' -down_revision = '91bd9482ce23' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('task_orders', sa.Column('cor_id', postgresql.UUID(as_uuid=True), nullable=True)) - op.add_column('task_orders', sa.Column('ko_id', postgresql.UUID(as_uuid=True), nullable=True)) - op.add_column('task_orders', sa.Column('so_id', postgresql.UUID(as_uuid=True), nullable=True)) - op.create_foreign_key('task_orders_users_so_id', 'task_orders', 'users', ['so_id'], ['id']) - op.create_foreign_key('task_orders_users_cor_id', 'task_orders', 'users', ['cor_id'], ['id']) - op.create_foreign_key('task_orders_users_ko_id', 'task_orders', 'users', ['ko_id'], ['id']) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint('task_orders_users_so_id', 'task_orders', type_='foreignkey') - op.drop_constraint('task_orders_users_cor_id', 'task_orders', type_='foreignkey') - op.drop_constraint('task_orders_users_ko_id', 'task_orders', type_='foreignkey') - op.drop_column('task_orders', 'so_id') - op.drop_column('task_orders', 'ko_id') - op.drop_column('task_orders', 'cor_id') - # ### end Alembic commands ### diff --git a/alembic/versions/7d9f070012ae_dd254.py b/alembic/versions/7d9f070012ae_dd254.py deleted file mode 100644 index 8e93cb60..00000000 --- a/alembic/versions/7d9f070012ae_dd254.py +++ /dev/null @@ -1,38 +0,0 @@ -"""dd254 - -Revision ID: 7d9f070012ae -Revises: b3a1a07cf30b -Create Date: 2019-02-18 08:38:07.076612 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '7d9f070012ae' -down_revision = 'b3a1a07cf30b' -branch_labels = None -depends_on = None - - -def upgrade(): - op.create_table('dd_254s', - 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('certifying_official', sa.String(), nullable=True), - sa.Column('co_title', sa.String(), nullable=True), - sa.Column('co_address', sa.String(), nullable=True), - sa.Column('co_phone', sa.String(), nullable=True), - sa.Column('required_distribution', sa.ARRAY(sa.String()), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.add_column('task_orders', sa.Column('dd_254_id', postgresql.UUID(as_uuid=True), nullable=True)) - op.create_foreign_key("task_orders_dd_254s_id", 'task_orders', 'dd_254s', ['dd_254_id'], ['id']) - - -def downgrade(): - op.drop_constraint('task_orders_dd_254s_id', 'task_orders', type_='foreignkey') - op.drop_column('task_orders', 'dd_254_id') - op.drop_table('dd_254s') diff --git a/alembic/versions/7f2040715b0d_add_oversight_columns_to_task_order.py b/alembic/versions/7f2040715b0d_add_oversight_columns_to_task_order.py deleted file mode 100644 index ccd0b06e..00000000 --- a/alembic/versions/7f2040715b0d_add_oversight_columns_to_task_order.py +++ /dev/null @@ -1,32 +0,0 @@ -"""add oversight columns to task order - -Revision ID: 7f2040715b0d -Revises: 4536f50b25bc -Create Date: 2019-01-10 16:34:20.185768 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '7f2040715b0d' -down_revision = '4536f50b25bc' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('task_orders', sa.Column('cor_phone_number', sa.String(), nullable=True)) - op.add_column('task_orders', sa.Column('ko_phone_number', sa.String(), nullable=True)) - op.add_column('task_orders', sa.Column('so_phone_number', sa.String(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('task_orders', 'so_phone_number') - op.drop_column('task_orders', 'ko_phone_number') - op.drop_column('task_orders', 'cor_phone_number') - # ### end Alembic commands ### diff --git a/alembic/versions/8467440c4ae6_add_user_data_fields_to_invitations.py b/alembic/versions/8467440c4ae6_add_user_data_fields_to_invitations.py deleted file mode 100644 index 50f79f6a..00000000 --- a/alembic/versions/8467440c4ae6_add_user_data_fields_to_invitations.py +++ /dev/null @@ -1,54 +0,0 @@ -"""add user data fields to invitations - -Revision ID: 8467440c4ae6 -Revises: 24700d113ea9 -Create Date: 2019-05-31 12:40:10.457529 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '8467440c4ae6' -down_revision = '24700d113ea9' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('application_invitations', sa.Column('dod_id', sa.String(), nullable=True)) - op.add_column('application_invitations', sa.Column('first_name', sa.String(), nullable=True)) - op.add_column('application_invitations', sa.Column('last_name', sa.String(), nullable=True)) - op.add_column('application_invitations', sa.Column('phone_number', sa.String(), nullable=True)) - op.alter_column('application_roles', 'user_id', - existing_type=postgresql.UUID(), - nullable=True) - op.add_column('portfolio_invitations', sa.Column('dod_id', sa.String(), nullable=True)) - op.add_column('portfolio_invitations', sa.Column('first_name', sa.String(), nullable=True)) - op.add_column('portfolio_invitations', sa.Column('last_name', sa.String(), nullable=True)) - op.add_column('portfolio_invitations', sa.Column('phone_number', sa.String(), nullable=True)) - op.alter_column('portfolio_roles', 'user_id', - existing_type=postgresql.UUID(), - nullable=True) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.alter_column('portfolio_roles', 'user_id', - existing_type=postgresql.UUID(), - nullable=True) - op.drop_column('portfolio_invitations', 'phone_number') - op.drop_column('portfolio_invitations', 'last_name') - op.drop_column('portfolio_invitations', 'first_name') - op.drop_column('portfolio_invitations', 'dod_id') - op.alter_column('application_roles', 'user_id', - existing_type=postgresql.UUID(), - nullable=True) - op.drop_column('application_invitations', 'phone_number') - op.drop_column('application_invitations', 'last_name') - op.drop_column('application_invitations', 'first_name') - op.drop_column('application_invitations', 'dod_id') - # ### end Alembic commands ### diff --git a/alembic/versions/875841fac207_add_audit_events_table.py b/alembic/versions/875841fac207_add_audit_events_table.py deleted file mode 100644 index bccaa8b4..00000000 --- a/alembic/versions/875841fac207_add_audit_events_table.py +++ /dev/null @@ -1,46 +0,0 @@ -"""add audit_events table - -Revision ID: 875841fac207 -Revises: 2572be7fb7fc -Create Date: 2018-09-13 15:34:18.815205 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '875841fac207' -down_revision = 'c19ae79d2521' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('audit_events', - 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('user_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('resource_type', sa.String(), nullable=False), - sa.Column('display_name', sa.String(), nullable=True), - sa.Column('resource_id', postgresql.UUID(as_uuid=True), nullable=False), - sa.Column('action', sa.String(), nullable=False), - sa.Column('workspace_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('request_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.ForeignKeyConstraint(['user_id'], ['users.id']), - sa.ForeignKeyConstraint(['workspace_id'], ['workspaces.id']), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_audit_events_resource_id'), 'audit_events', ['resource_id'], unique=False) - op.create_index(op.f('ix_audit_events_user_id'), 'audit_events', ['user_id'], unique=False) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_audit_events_user_id'), table_name='audit_events') - op.drop_index(op.f('ix_audit_events_resource_id'), table_name='audit_events') - op.drop_table('audit_events') - # ### end Alembic commands ### diff --git a/alembic/versions/903d7c66ff1d_remove_workspaces_name_unique_constraint.py b/alembic/versions/903d7c66ff1d_remove_workspaces_name_unique_constraint.py deleted file mode 100644 index 672f1e64..00000000 --- a/alembic/versions/903d7c66ff1d_remove_workspaces_name_unique_constraint.py +++ /dev/null @@ -1,42 +0,0 @@ -"""remove workspaces.name unique constraint - -Revision ID: 903d7c66ff1d -Revises: 875841fac207 -Create Date: 2018-09-26 10:19:13.230064 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '903d7c66ff1d' -down_revision = '875841fac207' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_index(op.f('ix_audit_events_request_id'), 'audit_events', ['request_id'], unique=False) - op.create_index(op.f('ix_audit_events_workspace_id'), 'audit_events', ['workspace_id'], unique=False) - op.create_foreign_key(None, 'audit_events', 'requests', ['request_id'], ['id']) - op.alter_column('request_status_events', 'time_created', - existing_type=postgresql.TIMESTAMP(timezone=True), - nullable=False, - existing_server_default=sa.text('now()')) - op.drop_constraint('workspaces_name_key', 'workspaces', type_='unique') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_unique_constraint('workspaces_name_key', 'workspaces', ['name']) - op.alter_column('request_status_events', 'time_created', - existing_type=postgresql.TIMESTAMP(timezone=True), - nullable=True, - existing_server_default=sa.text('now()')) - op.drop_constraint(None, 'audit_events', type_='foreignkey') - op.drop_index(op.f('ix_audit_events_workspace_id'), table_name='audit_events') - op.drop_index(op.f('ix_audit_events_request_id'), table_name='audit_events') - # ### end Alembic commands ### diff --git a/alembic/versions/91bd9482ce23_add_cloud_id_column_to_user.py b/alembic/versions/91bd9482ce23_add_cloud_id_column_to_user.py deleted file mode 100644 index e404b587..00000000 --- a/alembic/versions/91bd9482ce23_add_cloud_id_column_to_user.py +++ /dev/null @@ -1,28 +0,0 @@ -"""Add cloud_id column to user - -Revision ID: 91bd9482ce23 -Revises: b3fa1493e0a9 -Create Date: 2019-01-08 10:18:23.764179 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '91bd9482ce23' -down_revision = 'b3fa1493e0a9' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('users', sa.Column('cloud_id', sa.String(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('users', 'cloud_id') - # ### end Alembic commands ### diff --git a/alembic/versions/938a31795096_add_permission_sets_to_portfolio_role.py b/alembic/versions/938a31795096_add_permission_sets_to_portfolio_role.py deleted file mode 100644 index f31042d1..00000000 --- a/alembic/versions/938a31795096_add_permission_sets_to_portfolio_role.py +++ /dev/null @@ -1,33 +0,0 @@ -"""add permission sets to portfolio_role - -Revision ID: 938a31795096 -Revises: db161adbafdf -Create Date: 2019-03-07 06:13:05.400911 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '938a31795096' -down_revision = 'db161adbafdf' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('portfolio_roles_roles', - sa.Column('portfolio_role_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('role_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.ForeignKeyConstraint(['portfolio_role_id'], ['portfolio_roles.id'], ), - sa.ForeignKeyConstraint(['role_id'], ['roles.id'], ) - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('portfolio_roles_roles') - # ### end Alembic commands ### diff --git a/alembic/versions/978bf56e21b6_remove_pe_number_model.py b/alembic/versions/978bf56e21b6_remove_pe_number_model.py deleted file mode 100644 index 17cd2f1b..00000000 --- a/alembic/versions/978bf56e21b6_remove_pe_number_model.py +++ /dev/null @@ -1,32 +0,0 @@ -"""Remove PE number model - -Revision ID: 978bf56e21b6 -Revises: c92cec2f32d4 -Create Date: 2019-02-20 18:24:37.970323 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '978bf56e21b6' -down_revision = 'c92cec2f32d4' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('pe_numbers') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('pe_numbers', - sa.Column('number', sa.VARCHAR(), autoincrement=False, nullable=False), - sa.Column('description', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.PrimaryKeyConstraint('number', name='pe_numbers_pkey') - ) - # ### end Alembic commands ### diff --git a/alembic/versions/988f8b23fbf6_portfolio_demographics.py b/alembic/versions/988f8b23fbf6_portfolio_demographics.py deleted file mode 100644 index 85fb242b..00000000 --- a/alembic/versions/988f8b23fbf6_portfolio_demographics.py +++ /dev/null @@ -1,42 +0,0 @@ -"""Portfolio demographics - -Revision ID: 988f8b23fbf6 -Revises: 8467440c4ae6 -Create Date: 2019-05-31 14:00:31.197803 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '988f8b23fbf6' -down_revision = '8467440c4ae6' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('portfolios', sa.Column('app_migration', sa.String(), nullable=True)) - op.add_column('portfolios', sa.Column('complexity', sa.ARRAY(sa.String()), nullable=True)) - op.add_column('portfolios', sa.Column('complexity_other', sa.String(), nullable=True)) - op.add_column('portfolios', sa.Column('description', sa.String(), nullable=True)) - op.add_column('portfolios', sa.Column('dev_team', sa.ARRAY(sa.String()), nullable=True)) - op.add_column('portfolios', sa.Column('dev_team_other', sa.String(), nullable=True)) - op.add_column('portfolios', sa.Column('native_apps', sa.String(), nullable=True)) - op.add_column('portfolios', sa.Column('team_experience', sa.String(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('portfolios', 'team_experience') - op.drop_column('portfolios', 'native_apps') - op.drop_column('portfolios', 'dev_team_other') - op.drop_column('portfolios', 'dev_team') - op.drop_column('portfolios', 'description') - op.drop_column('portfolios', 'complexity_other') - op.drop_column('portfolios', 'complexity') - op.drop_column('portfolios', 'app_migration') - # ### end Alembic commands ### diff --git a/alembic/versions/994a80ee92c9_add_invitations.py b/alembic/versions/994a80ee92c9_add_invitations.py deleted file mode 100644 index c480ec9b..00000000 --- a/alembic/versions/994a80ee92c9_add_invitations.py +++ /dev/null @@ -1,50 +0,0 @@ -"""add invitations - -Revision ID: 994a80ee92c9 -Revises: 9c24c609878a -Create Date: 2018-10-30 16:49:53.688621 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '994a80ee92c9' -down_revision = '9c24c609878a' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('invitations', - 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('user_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('workspace_role_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('inviter_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('status', sa.Enum('ACCEPTED', 'REVOKED', 'PENDING', 'REJECTED', name='status', native_enum=False), nullable=True), - sa.Column('expiration_time', sa.TIMESTAMP(timezone=True), nullable=True), - sa.Column('token', sa.String(), nullable=True), - sa.ForeignKeyConstraint(['inviter_id'], ['users.id'], ), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), - sa.ForeignKeyConstraint(['workspace_role_id'], ['workspace_roles.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_invitations_inviter_id'), 'invitations', ['inviter_id'], unique=False) - op.create_index(op.f('ix_invitations_token'), 'invitations', ['token'], unique=False) - op.create_index(op.f('ix_invitations_user_id'), 'invitations', ['user_id'], unique=False) - op.create_index(op.f('ix_invitations_workspace_role_id'), 'invitations', ['workspace_role_id'], unique=False) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_invitations_workspace_role_id'), table_name='invitations') - op.drop_index(op.f('ix_invitations_user_id'), table_name='invitations') - op.drop_index(op.f('ix_invitations_token'), table_name='invitations') - op.drop_index(op.f('ix_invitations_inviter_id'), table_name='invitations') - op.drop_table('invitations') - # ### end Alembic commands ### diff --git a/alembic/versions/9c24c609878a_resource_attachments.py b/alembic/versions/9c24c609878a_resource_attachments.py deleted file mode 100644 index 6a14a228..00000000 --- a/alembic/versions/9c24c609878a_resource_attachments.py +++ /dev/null @@ -1,32 +0,0 @@ -"""resource attachments - -Revision ID: 9c24c609878a -Revises: 903d7c66ff1d -Create Date: 2018-10-18 17:14:25.566215 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = '9c24c609878a' -down_revision = 'c99026ab9918' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('attachments', sa.Column('resource', sa.String(), nullable=True)) - op.add_column('attachments', sa.Column('resource_id', postgresql.UUID(as_uuid=True), nullable=True)) - op.create_index(op.f('ix_attachments_resource_id'), 'attachments', ['resource_id'], unique=False) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_attachments_resource_id'), table_name='attachments') - op.drop_column('attachments', 'resource_id') - op.drop_column('attachments', 'resource') - # ### end Alembic commands ### diff --git a/alembic/versions/a19138e386c4_rename_roles_table_to_permission_sets.py b/alembic/versions/a19138e386c4_rename_roles_table_to_permission_sets.py deleted file mode 100644 index 5da2cb2d..00000000 --- a/alembic/versions/a19138e386c4_rename_roles_table_to_permission_sets.py +++ /dev/null @@ -1,28 +0,0 @@ -"""rename roles table to permission_sets - -Revision ID: a19138e386c4 -Revises: 0e71ab219ada -Create Date: 2019-03-13 10:18:35.770296 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = 'a19138e386c4' -down_revision = '0e71ab219ada' -branch_labels = None -depends_on = None - - -def upgrade(): - op.rename_table("roles", "permission_sets") - op.rename_table("portfolio_roles_roles", "portfolio_roles_permission_sets") - op.alter_column("portfolio_roles_permission_sets", "role_id", new_column_name="permission_set_id") - - -def downgrade(): - op.rename_table("permission_sets", "roles") - op.alter_column("portfolio_roles_permission_sets", "permission_set_id", new_column_name="role_id") - op.rename_table("portfolio_roles_permission_sets", "portfolio_roles_roles") diff --git a/alembic/versions/a6837632686c_change_workspace_and_project_tables.py b/alembic/versions/a6837632686c_change_workspace_and_project_tables.py deleted file mode 100644 index be2712f9..00000000 --- a/alembic/versions/a6837632686c_change_workspace_and_project_tables.py +++ /dev/null @@ -1,28 +0,0 @@ -"""change workspace and project tables - -Revision ID: a6837632686c -Revises: acd0c11be93a -Create Date: 2019-01-11 10:36:55.030308 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = 'a6837632686c' -down_revision = 'acd0c11be93a' -branch_labels = None -depends_on = None - - -def upgrade(): - op.rename_table("workspaces", "portfolios") - op.rename_table("projects", "applications") - op.rename_table("workspace_roles", "portfolio_roles") - - -def downgrade(): - op.rename_table("portfolios", "workspaces") - op.rename_table("applications", "projects") - op.rename_table("portfolio_roles", "workspace_roles") diff --git a/alembic/versions/a9d8c6b6221c_status_for_existing_workspace_roles.py b/alembic/versions/a9d8c6b6221c_status_for_existing_workspace_roles.py deleted file mode 100644 index 25ba77cc..00000000 --- a/alembic/versions/a9d8c6b6221c_status_for_existing_workspace_roles.py +++ /dev/null @@ -1,30 +0,0 @@ -"""status for existing workspace roles - -Revision ID: a9d8c6b6221c -Revises: 5284ac1ac77c -Create Date: 2018-10-31 11:08:05.791739 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'a9d8c6b6221c' -down_revision = '5284ac1ac77c' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - conn = op.get_bind() - conn.execute("UPDATE workspace_roles set status = 'ACTIVE'") - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - conn = op.get_bind() - conn.execute("UPDATE workspace_roles set status = null") - # ### end Alembic commands ### diff --git a/alembic/versions/ab1167fc8260_add_user_last_session_id.py b/alembic/versions/ab1167fc8260_add_user_last_session_id.py deleted file mode 100644 index b1039571..00000000 --- a/alembic/versions/ab1167fc8260_add_user_last_session_id.py +++ /dev/null @@ -1,28 +0,0 @@ -"""add_user_last_session_id - -Revision ID: ab1167fc8260 -Revises: c5deba1826be -Create Date: 2019-05-15 16:25:48.766451 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = 'ab1167fc8260' -down_revision = 'c5deba1826be' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('users', sa.Column('last_session_id', postgresql.UUID(as_uuid=True), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('users', 'last_session_id') - # ### end Alembic commands ### diff --git a/alembic/versions/acd0c11be93a_change_workspace_and_project.py b/alembic/versions/acd0c11be93a_change_workspace_and_project.py deleted file mode 100644 index 3dacc6b5..00000000 --- a/alembic/versions/acd0c11be93a_change_workspace_and_project.py +++ /dev/null @@ -1,34 +0,0 @@ -"""change workspace and project - -Revision ID: acd0c11be93a -Revises: 7f2040715b0d -Create Date: 2019-01-11 10:01:07.667126 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = 'acd0c11be93a' -down_revision = '7f2040715b0d' -branch_labels = None -depends_on = None - - -def upgrade(): - op.alter_column('audit_events', "workspace_id", new_column_name="portfolio_id") - op.alter_column('environments', "project_id", new_column_name="application_id") - op.alter_column('projects', "workspace_id", new_column_name="portfolio_id") - op.alter_column('task_orders', "workspace_id", new_column_name="portfolio_id") - op.alter_column('workspace_roles', "workspace_id", new_column_name="portfolio_id") - op.alter_column('invitations', "workspace_role_id", new_column_name="portfolio_role_id") - - -def downgrade(): - op.alter_column('audit_events', "portfolio_id", new_column_name="workspace_id") - op.alter_column('environments', "application_id", new_column_name="project_id") - op.alter_column('projects', "portfolio_id", new_column_name="workspace_id") - op.alter_column('task_orders', "portfolio_id", new_column_name="workspace_id") - op.alter_column('workspace_roles', "portfolio_id", new_column_name="workspace_id") - op.alter_column('invitations', "portfolio_role_id", new_column_name="workspace_role_id") diff --git a/alembic/versions/b3a1a07cf30b_record_signer_dod_id.py b/alembic/versions/b3a1a07cf30b_record_signer_dod_id.py deleted file mode 100644 index 8fd1930d..00000000 --- a/alembic/versions/b3a1a07cf30b_record_signer_dod_id.py +++ /dev/null @@ -1,34 +0,0 @@ -"""Record signer DOD ID - -Revision ID: b3a1a07cf30b -Revises: c98adf9bb431 -Create Date: 2019-02-12 10:16:19.349083 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'b3a1a07cf30b' -down_revision = 'c98adf9bb431' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('task_orders', sa.Column('level_of_warrant', sa.Numeric(scale=2), nullable=True)) - op.add_column('task_orders', sa.Column('signed_at', sa.DateTime(), nullable=True)) - op.add_column('task_orders', sa.Column('signer_dod_id', sa.String(), nullable=True)) - op.add_column('task_orders', sa.Column('unlimited_level_of_warrant', sa.Boolean(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('task_orders', 'unlimited_level_of_warrant') - op.drop_column('task_orders', 'signer_dod_id') - op.drop_column('task_orders', 'signed_at') - op.drop_column('task_orders', 'level_of_warrant') - # ### end Alembic commands ### diff --git a/alembic/versions/b3fa1493e0a9_add_cloud_id_column_to_environments.py b/alembic/versions/b3fa1493e0a9_add_cloud_id_column_to_environments.py deleted file mode 100644 index d1c36439..00000000 --- a/alembic/versions/b3fa1493e0a9_add_cloud_id_column_to_environments.py +++ /dev/null @@ -1,28 +0,0 @@ -"""Add cloud_id column to environments - -Revision ID: b3fa1493e0a9 -Revises: 6172ac7b8b26 -Create Date: 2019-01-04 14:28:59.660309 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'b3fa1493e0a9' -down_revision = '6172ac7b8b26' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('environments', sa.Column('cloud_id', sa.String(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('environments', 'cloud_id') - # ### end Alembic commands ### diff --git a/alembic/versions/b565531a1e82_portfolio_deletable.py b/alembic/versions/b565531a1e82_portfolio_deletable.py deleted file mode 100644 index ea7514ba..00000000 --- a/alembic/versions/b565531a1e82_portfolio_deletable.py +++ /dev/null @@ -1,28 +0,0 @@ -"""Portfolio deletable - -Revision ID: b565531a1e82 -Revises: c19d6129cca1 -Create Date: 2019-06-06 09:16:08.803603 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'b565531a1e82' -down_revision = 'c19d6129cca1' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('portfolios', sa.Column('deleted', sa.Boolean(), server_default=sa.text('false'), nullable=False)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('portfolios', 'deleted') - # ### end Alembic commands ### diff --git a/alembic/versions/c19ae79d2521_add_role_display_name.py b/alembic/versions/c19ae79d2521_add_role_display_name.py deleted file mode 100644 index 415e115c..00000000 --- a/alembic/versions/c19ae79d2521_add_role_display_name.py +++ /dev/null @@ -1,45 +0,0 @@ -"""add role.display_name - -Revision ID: c19ae79d2521 -Revises: 359caaf8c5f1 -Create Date: 2018-09-24 14:02:59.533928 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = "c19ae79d2521" -down_revision = "359caaf8c5f1" -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.alter_column( - "request_status_events", - "time_created", - existing_type=postgresql.TIMESTAMP(timezone=True), - nullable=True, - existing_server_default=sa.text("now()"), - ) - op.add_column( - "roles", - sa.Column("display_name", sa.String(), nullable=False, server_default=""), - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column("roles", "display_name") - op.alter_column( - "request_status_events", - "time_created", - existing_type=postgresql.TIMESTAMP(timezone=True), - nullable=True, - existing_server_default=sa.text("now()"), - ) - # ### end Alembic commands ### diff --git a/alembic/versions/c19d6129cca1_add_jedi_clin_type_to_clin_table.py b/alembic/versions/c19d6129cca1_add_jedi_clin_type_to_clin_table.py deleted file mode 100644 index 4b916ea5..00000000 --- a/alembic/versions/c19d6129cca1_add_jedi_clin_type_to_clin_table.py +++ /dev/null @@ -1,28 +0,0 @@ -"""add jedi clin type to clin table - -Revision ID: c19d6129cca1 -Revises: 988f8b23fbf6 -Create Date: 2019-06-04 11:30:25.283028 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'c19d6129cca1' -down_revision = '988f8b23fbf6' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('clins', sa.Column('jedi_clin_type', sa.Enum('JEDI_CLIN_1', 'JEDI_CLIN_2', 'JEDI_CLIN_3', 'JEDI_CLIN_4', name='jediclintype', native_enum=False), nullable=False)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('clins', 'jedi_clin_type') - # ### end Alembic commands ### diff --git a/alembic/versions/c222327c3963_stop_updates_of_dod_id.py b/alembic/versions/c222327c3963_stop_updates_of_dod_id.py deleted file mode 100644 index 32636aa1..00000000 --- a/alembic/versions/c222327c3963_stop_updates_of_dod_id.py +++ /dev/null @@ -1,46 +0,0 @@ -"""stop updates of dod id - -Revision ID: c222327c3963 -Revises: 02d11579a581 -Create Date: 2018-12-12 10:23:00.773973 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'c222327c3963' -down_revision = '02d11579a581' -branch_labels = None -depends_on = None - - -def upgrade(): - connection = op.get_bind() - connection.execute(""" -CREATE OR REPLACE FUNCTION lock_dod_id() -RETURNS TRIGGER -AS $$ -BEGIN - IF NEW.dod_id != OLD.dod_id THEN - RAISE EXCEPTION 'DOD ID cannot be updated'; - END IF; - - RETURN NEW; -END -$$ LANGUAGE plpgsql; - -CREATE TRIGGER lock_dod_id -BEFORE UPDATE ON users -FOR EACH ROW - EXECUTE PROCEDURE lock_dod_id(); - """) - - -def downgrade(): - connection = op.get_bind() - connection.execute(""" -DROP TRIGGER IF EXISTS lock_dod_id ON users; -DROP FUNCTION IF EXISTS lock_dod_id(); - """) diff --git a/alembic/versions/c5deba1826be_add_appliction_id_to_auditevent.py b/alembic/versions/c5deba1826be_add_appliction_id_to_auditevent.py deleted file mode 100644 index 0dcd9f08..00000000 --- a/alembic/versions/c5deba1826be_add_appliction_id_to_auditevent.py +++ /dev/null @@ -1,32 +0,0 @@ -"""add_appliction_id_to_auditevent - -Revision ID: c5deba1826be -Revises: 404bb5bb3a0e -Create Date: 2019-05-15 16:30:27.981456 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = 'c5deba1826be' -down_revision = '404bb5bb3a0e' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('audit_events', sa.Column('application_id', postgresql.UUID(as_uuid=True), nullable=True)) - op.create_index(op.f('ix_audit_events_application_id'), 'audit_events', ['application_id'], unique=False) - op.create_foreign_key('audit_events_application_application_id', 'audit_events', 'applications', ['application_id'], ['id']) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint('audit_events_application_application_id', 'audit_events', type_='foreignkey') - op.drop_index(op.f('ix_audit_events_application_id'), table_name='audit_events') - op.drop_column('audit_events', 'application_id') - # ### end Alembic commands ### diff --git a/alembic/versions/c92cec2f32d4_remove_request_related_models.py b/alembic/versions/c92cec2f32d4_remove_request_related_models.py deleted file mode 100644 index 6ca7e507..00000000 --- a/alembic/versions/c92cec2f32d4_remove_request_related_models.py +++ /dev/null @@ -1,150 +0,0 @@ -"""Remove request related models - -Revision ID: c92cec2f32d4 -Revises: 3777e9e39644 -Create Date: 2019-02-20 17:37:33.992269 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = 'c92cec2f32d4' -down_revision = '3777e9e39644' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('request_status_events') - op.drop_table('request_reviews') - op.drop_table('request_internal_comments') - op.drop_table('request_revisions') - op.drop_index('ix_audit_events_request_id', table_name='audit_events') - op.drop_constraint('audit_events_request_id_fkey', 'audit_events', type_='foreignkey') - op.drop_column('audit_events', 'request_id') - op.drop_constraint('workspaces_request_id_fkey', 'portfolios', type_='foreignkey') - op.drop_table('requests') - op.drop_column('portfolios', 'request_id') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('portfolios', sa.Column('request_id', postgresql.UUID(), autoincrement=False, nullable=True)) - op.add_column('audit_events', sa.Column('request_id', postgresql.UUID(), autoincrement=False, nullable=True)) - op.create_table('requests', - sa.Column('time_updated', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('id', postgresql.UUID(), server_default=sa.text('uuid_generate_v4()'), autoincrement=False, nullable=False), - sa.Column('time_created', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=True), - sa.Column('user_id', postgresql.UUID(), autoincrement=False, nullable=False), - sa.Column('legacy_task_order_id', postgresql.UUID(), autoincrement=False, nullable=True), - sa.ForeignKeyConstraint(['legacy_task_order_id'], ['legacy_task_orders.id'], name='requests_legacy_task_order_fkey'), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], name='requests_user_id_fkey'), - sa.PrimaryKeyConstraint('id', name='requests_pkey'), - postgresql_ignore_search_path=False - ) - op.create_index('ix_audit_events_request_id', 'audit_events', ['request_id'], unique=False) - op.create_table('request_revisions', - sa.Column('time_created', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('time_updated', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('id', postgresql.UUID(), server_default=sa.text('uuid_generate_v4()'), autoincrement=False, nullable=False), - sa.Column('request_id', postgresql.UUID(), autoincrement=False, nullable=False), - sa.Column('sequence', sa.BIGINT(), autoincrement=False, nullable=False), - sa.Column('am_poc', sa.BOOLEAN(), autoincrement=False, nullable=True), - sa.Column('dodid_poc', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('email_poc', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('fname_poc', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('lname_poc', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('jedi_usage', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('start_date', sa.DATE(), autoincrement=False, nullable=True), - sa.Column('cloud_native', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('dollar_value', sa.INTEGER(), autoincrement=False, nullable=True), - sa.Column('dod_component', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('data_transfers', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('expected_completion_date', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('jedi_migration', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('num_software_systems', sa.INTEGER(), autoincrement=False, nullable=True), - sa.Column('number_user_sessions', sa.INTEGER(), autoincrement=False, nullable=True), - sa.Column('average_daily_traffic', sa.INTEGER(), autoincrement=False, nullable=True), - sa.Column('engineering_assessment', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('technical_support_team', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('estimated_monthly_spend', sa.INTEGER(), autoincrement=False, nullable=True), - sa.Column('average_daily_traffic_gb', sa.INTEGER(), autoincrement=False, nullable=True), - sa.Column('rationalization_software_systems', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('organization_providing_assistance', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('name', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('citizenship', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('designation', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('phone_number', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('email_request', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('fname_request', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('lname_request', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('service_branch', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('date_latest_training', sa.DATE(), autoincrement=False, nullable=True), - sa.Column('pe_id', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('task_order_number', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('fname_co', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('lname_co', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('email_co', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('office_co', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('fname_cor', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('lname_cor', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('email_cor', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('office_cor', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('uii_ids', postgresql.ARRAY(sa.VARCHAR()), autoincrement=False, nullable=True), - sa.Column('treasury_code', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('ba_code', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('phone_ext', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.ForeignKeyConstraint(['request_id'], ['requests.id'], name='request_revisions_request_id_fkey'), - sa.PrimaryKeyConstraint('id', name='request_revisions_pkey'), - postgresql_ignore_search_path=False - ) - op.create_table('request_internal_comments', - sa.Column('time_created', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('time_updated', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('id', postgresql.UUID(), server_default=sa.text('uuid_generate_v4()'), autoincrement=False, nullable=False), - sa.Column('text', sa.VARCHAR(), autoincrement=False, nullable=False), - sa.Column('user_id', postgresql.UUID(), autoincrement=False, nullable=False), - sa.Column('request_id', postgresql.UUID(), autoincrement=False, nullable=False), - sa.ForeignKeyConstraint(['request_id'], ['requests.id'], name='request_internal_comments_request_id_fkey', ondelete='CASCADE'), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], name='request_internal_comments_user_id_fkey'), - sa.PrimaryKeyConstraint('id', name='request_internal_comments_pkey') - ) - op.create_table('request_reviews', - sa.Column('time_created', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('time_updated', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('id', postgresql.UUID(), server_default=sa.text('uuid_generate_v4()'), autoincrement=False, nullable=False), - sa.Column('user_id', postgresql.UUID(), autoincrement=False, nullable=True), - sa.Column('comment', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('fname_mao', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('lname_mao', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('email_mao', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('phone_mao', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('fname_ccpo', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('lname_ccpo', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('phone_ext_mao', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], name='request_reviews_user_id_fkey'), - sa.PrimaryKeyConstraint('id', name='request_reviews_pkey'), - postgresql_ignore_search_path=False - ) - op.create_table('request_status_events', - sa.Column('time_updated', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('id', postgresql.UUID(), server_default=sa.text('uuid_generate_v4()'), autoincrement=False, nullable=False), - sa.Column('new_status', sa.VARCHAR(length=30), autoincrement=False, nullable=True), - sa.Column('time_created', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('request_id', postgresql.UUID(), autoincrement=False, nullable=False), - sa.Column('sequence', sa.BIGINT(), autoincrement=False, nullable=False), - sa.Column('request_revision_id', postgresql.UUID(), autoincrement=False, nullable=False), - sa.Column('request_review_id', postgresql.UUID(), autoincrement=False, nullable=True), - sa.CheckConstraint("(new_status)::text = ANY ((ARRAY['STARTED'::character varying, 'SUBMITTED'::character varying, 'PENDING_FINANCIAL_VERIFICATION'::character varying, 'PENDING_CCPO_ACCEPTANCE'::character varying, 'PENDING_CCPO_APPROVAL'::character varying, 'CHANGES_REQUESTED'::character varying, 'CHANGES_REQUESTED_TO_FINVER'::character varying, 'APPROVED'::character varying, 'EXPIRED'::character varying, 'DELETED'::character varying])::text[])", name='requeststatus'), - sa.ForeignKeyConstraint(['request_id'], ['requests.id'], name='request_status_events_request_id_fkey', ondelete='CASCADE'), - sa.ForeignKeyConstraint(['request_review_id'], ['request_reviews.id'], name='request_status_events_request_review_id_fkey'), - sa.ForeignKeyConstraint(['request_revision_id'], ['request_revisions.id'], name='request_status_events_request_revision_id_fkey'), - sa.PrimaryKeyConstraint('id', name='request_status_events_pkey') - ) - op.create_foreign_key('workspaces_request_id_fkey', 'portfolios', 'requests', ['request_id'], ['id']) - op.create_foreign_key('audit_events_request_id_fkey', 'audit_events', 'requests', ['request_id'], ['id']) - # ### end Alembic commands ### diff --git a/alembic/versions/c98adf9bb431_record_invitation_status.py b/alembic/versions/c98adf9bb431_record_invitation_status.py deleted file mode 100644 index f017beef..00000000 --- a/alembic/versions/c98adf9bb431_record_invitation_status.py +++ /dev/null @@ -1,32 +0,0 @@ -"""record invitation status - -Revision ID: c98adf9bb431 -Revises: 1f690989e38e -Create Date: 2019-02-06 09:02:28.617202 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'c98adf9bb431' -down_revision = '1f690989e38e' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('task_orders', sa.Column('cor_invite', sa.Boolean(), nullable=True)) - op.add_column('task_orders', sa.Column('ko_invite', sa.Boolean(), nullable=True)) - op.add_column('task_orders', sa.Column('so_invite', sa.Boolean(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('task_orders', 'so_invite') - op.drop_column('task_orders', 'ko_invite') - op.drop_column('task_orders', 'cor_invite') - # ### end Alembic commands ### diff --git a/alembic/versions/c99026ab9918_add_additional_user_fields.py b/alembic/versions/c99026ab9918_add_additional_user_fields.py deleted file mode 100644 index f0dc6540..00000000 --- a/alembic/versions/c99026ab9918_add_additional_user_fields.py +++ /dev/null @@ -1,36 +0,0 @@ -"""add additional user fields - -Revision ID: c99026ab9918 -Revises: 903d7c66ff1d -Create Date: 2018-10-15 11:10:46.073745 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'c99026ab9918' -down_revision = '903d7c66ff1d' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('users', sa.Column('citizenship', sa.String(), nullable=True)) - op.add_column('users', sa.Column('date_latest_training', sa.Date(), nullable=True)) - op.add_column('users', sa.Column('designation', sa.String(), nullable=True)) - op.add_column('users', sa.Column('phone_number', sa.String(), nullable=True)) - op.add_column('users', sa.Column('service_branch', sa.String(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('users', 'service_branch') - op.drop_column('users', 'phone_number') - op.drop_column('users', 'designation') - op.drop_column('users', 'date_latest_training') - op.drop_column('users', 'citizenship') - # ### end Alembic commands ### diff --git a/alembic/versions/d2390c547dca_environment_roles_has_relation_to_.py b/alembic/versions/d2390c547dca_environment_roles_has_relation_to_.py deleted file mode 100644 index 4c212f27..00000000 --- a/alembic/versions/d2390c547dca_environment_roles_has_relation_to_.py +++ /dev/null @@ -1,54 +0,0 @@ -"""environment_roles has relation to application_roles - -Revision ID: d2390c547dca -Revises: ab1167fc8260 -Create Date: 2019-05-29 12:34:45.928219 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = 'd2390c547dca' -down_revision = 'ab1167fc8260' -branch_labels = None -depends_on = None - - -def upgrade(): - conn = op.get_bind() - op.add_column('environment_roles', sa.Column('application_role_id', postgresql.UUID(as_uuid=True), nullable=True)) - op.drop_index('environments_role_user_environment', table_name='environment_roles') - op.create_index('environments_role_user_environment', 'environment_roles', ['application_role_id', 'environment_id'], unique=True) - op.drop_constraint('environment_roles_user_id_fkey', 'environment_roles', type_='foreignkey') - op.create_foreign_key("environment_roles_application_roles_fkey", 'environment_roles', 'application_roles', ['application_role_id'], ['id']) - conn.execute(""" -UPDATE environment_roles er -SET application_role_id = application_roles.id -FROM environments, applications, application_roles -WHERE - environment_id = environments.id AND - applications.id = environments.application_id AND - application_roles.application_id = applications.id AND - er.user_id = application_roles.user_id; -""") - op.alter_column('environment_roles', "application_role_id", nullable=False) - op.drop_column('environment_roles', 'user_id') - - -def downgrade(): - conn = op.get_bind() - op.add_column('environment_roles', sa.Column('user_id', postgresql.UUID(), autoincrement=False, nullable=True)) - op.drop_constraint("environment_roles_application_roles_fkey", 'environment_roles', type_='foreignkey') - op.create_foreign_key('environment_roles_user_id_fkey', 'environment_roles', 'users', ['user_id'], ['id']) - op.drop_index('environments_role_user_environment', table_name='environment_roles') - op.create_index('environments_role_user_environment', 'environment_roles', ['user_id', 'environment_id'], unique=True) - conn.execute(""" -UPDATE environment_roles -SET user_id = application_roles.user_id -FROM application_roles -WHERE application_role_id = application_roles.id -""") - op.alter_column('environment_roles', "user_id", nullable=False) - op.drop_column('environment_roles', 'application_role_id') diff --git a/alembic/versions/d73cba9a4259_remove_columns_from_task_orders.py b/alembic/versions/d73cba9a4259_remove_columns_from_task_orders.py deleted file mode 100644 index 60c8dea0..00000000 --- a/alembic/versions/d73cba9a4259_remove_columns_from_task_orders.py +++ /dev/null @@ -1,132 +0,0 @@ -"""remove columns from task orders - -Revision ID: d73cba9a4259 -Revises: d2390c547dca -Create Date: 2019-05-30 13:47:08.684986 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = 'd73cba9a4259' -down_revision = 'd2390c547dca' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint('task_orders_users_so_id', 'task_orders', type_='foreignkey') - op.drop_constraint('task_orders_users_ko_id', 'task_orders', type_='foreignkey') - op.drop_constraint('task_orders_attachments_csp_attachment_id', 'task_orders', type_='foreignkey') - op.drop_constraint('task_orders_users_cor_id', 'task_orders', type_='foreignkey') - op.drop_constraint('task_orders_dd_254s_id', 'task_orders', type_='foreignkey') - op.drop_column('task_orders', 'custom_clauses') - op.drop_column('task_orders', 'unlimited_level_of_warrant') - op.drop_column('task_orders', 'complexity_other') - op.drop_column('task_orders', 'level_of_warrant') - op.drop_column('task_orders', 'ko_id') - op.drop_column('task_orders', 'so_first_name') - op.drop_column('task_orders', 'ko_invite') - op.drop_column('task_orders', 'team_experience') - op.drop_column('task_orders', 'so_phone_number') - op.drop_column('task_orders', 'cor_phone_number') - op.drop_column('task_orders', 'end_date') - op.drop_column('task_orders', 'cor_first_name') - op.drop_column('task_orders', 'app_migration') - op.drop_column('task_orders', 'performance_length') - op.drop_column('task_orders', 'ko_last_name') - op.drop_column('task_orders', 'so_last_name') - op.drop_column('task_orders', 'cor_dod_id') - op.drop_column('task_orders', 'scope') - op.drop_column('task_orders', 'complexity') - op.drop_column('task_orders', 'dev_team_other') - op.drop_column('task_orders', 'cor_invite') - op.drop_column('task_orders', 'ko_first_name') - op.drop_column('task_orders', 'native_apps') - op.drop_column('task_orders', 'csp_attachment_id') - op.drop_column('task_orders', 'clin_02') - op.drop_column('task_orders', 'cor_id') - op.drop_column('task_orders', 'so_email') - op.drop_column('task_orders', 'ko_email') - op.drop_column('task_orders', 'start_date') - op.drop_column('task_orders', 'cor_last_name') - op.drop_column('task_orders', 'ko_phone_number') - op.drop_column('task_orders', 'so_id') - op.drop_column('task_orders', 'dev_team') - op.drop_column('task_orders', 'clin_01') - op.drop_column('task_orders', 'cor_email') - op.drop_column('task_orders', 'loas') - op.drop_column('task_orders', 'so_dod_id') - op.drop_column('task_orders', 'so_invite') - op.drop_column('task_orders', 'clin_03') - op.drop_column('task_orders', 'dd_254_id') - op.drop_column('task_orders', 'clin_04') - op.drop_column('task_orders', 'ko_dod_id') - op.drop_table('dd_254s') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('task_orders', sa.Column('ko_dod_id', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('clin_04', sa.NUMERIC(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('dd_254_id', postgresql.UUID(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('clin_03', sa.NUMERIC(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('so_invite', sa.BOOLEAN(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('so_dod_id', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('loas', postgresql.ARRAY(sa.VARCHAR()), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('cor_email', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('clin_01', sa.NUMERIC(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('dev_team', postgresql.ARRAY(sa.VARCHAR()), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('so_id', postgresql.UUID(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('ko_phone_number', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('cor_last_name', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('start_date', sa.DATE(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('ko_email', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('so_email', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('cor_id', postgresql.UUID(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('clin_02', sa.NUMERIC(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('csp_attachment_id', postgresql.UUID(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('native_apps', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('ko_first_name', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('cor_invite', sa.BOOLEAN(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('dev_team_other', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('complexity', postgresql.ARRAY(sa.VARCHAR()), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('scope', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('cor_dod_id', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('so_last_name', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('ko_last_name', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('performance_length', sa.INTEGER(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('app_migration', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('cor_first_name', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('end_date', sa.DATE(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('cor_phone_number', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('so_phone_number', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('team_experience', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('ko_invite', sa.BOOLEAN(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('so_first_name', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('ko_id', postgresql.UUID(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('level_of_warrant', sa.NUMERIC(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('complexity_other', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('unlimited_level_of_warrant', sa.BOOLEAN(), autoincrement=False, nullable=True)) - op.add_column('task_orders', sa.Column('custom_clauses', sa.VARCHAR(), autoincrement=False, nullable=True)) - op.create_foreign_key('task_orders_users_cor_id', 'task_orders', 'users', ['cor_id'], ['id']) - op.create_foreign_key('task_orders_attachments_csp_attachment_id', 'task_orders', 'attachments', ['csp_attachment_id'], ['id']) - op.create_foreign_key('task_orders_users_ko_id', 'task_orders', 'users', ['ko_id'], ['id']) - op.create_foreign_key('task_orders_users_so_id', 'task_orders', 'users', ['so_id'], ['id']) - op.create_table('dd_254s', - sa.Column('time_created', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('time_updated', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('id', postgresql.UUID(), server_default=sa.text('uuid_generate_v4()'), autoincrement=False, nullable=False), - sa.Column('certifying_official', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('certifying_official_title', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('certifying_official_address', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('certifying_official_phone', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('required_distribution', postgresql.ARRAY(sa.VARCHAR()), autoincrement=False, nullable=True), - sa.PrimaryKeyConstraint('id', name='dd_254s_pkey') - ) - op.create_foreign_key('task_orders_dd_254s_id', 'task_orders', 'dd_254s', ['dd_254_id'], ['id']) - # ### end Alembic commands ### diff --git a/alembic/versions/d966d7194f5c_remove_task_orders_number_unique_.py b/alembic/versions/d966d7194f5c_remove_task_orders_number_unique_.py deleted file mode 100644 index e30eaac4..00000000 --- a/alembic/versions/d966d7194f5c_remove_task_orders_number_unique_.py +++ /dev/null @@ -1,25 +0,0 @@ -"""remove task_orders.number unique constraint - -Revision ID: d966d7194f5c -Revises: 3d3c71b03e98 -Create Date: 2019-06-19 12:53:39.502250 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'd966d7194f5c' -down_revision = '3d3c71b03e98' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint('task_orders_number_key1', 'task_orders', type_='unique') - # ### end Alembic commands ### - - -# Not downgradeable; would have to determine what redundant TOs to delete diff --git a/alembic/versions/da9d1c911a52_remove_status_column_from_task_order.py b/alembic/versions/da9d1c911a52_remove_status_column_from_task_order.py deleted file mode 100644 index 2847546c..00000000 --- a/alembic/versions/da9d1c911a52_remove_status_column_from_task_order.py +++ /dev/null @@ -1,28 +0,0 @@ -"""Remove status column from task order - -Revision ID: da9d1c911a52 -Revises: a6837632686c -Create Date: 2019-01-14 11:21:51.729134 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'da9d1c911a52' -down_revision = 'a6837632686c' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('task_orders', 'status') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('task_orders', sa.Column('status', sa.VARCHAR(length=7), autoincrement=False, nullable=True)) - # ### end Alembic commands ### diff --git a/alembic/versions/db161adbafdf_update_loa_to_array_type.py b/alembic/versions/db161adbafdf_update_loa_to_array_type.py deleted file mode 100644 index acb4f9fd..00000000 --- a/alembic/versions/db161adbafdf_update_loa_to_array_type.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Update LOA to Array Type - -Revision ID: db161adbafdf -Revises: 6512aa8d4641 -Create Date: 2019-02-15 14:28:33.181136 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'db161adbafdf' -down_revision = '6512aa8d4641' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.execute("ALTER TABLE task_orders ALTER COLUMN loa TYPE varchar[] USING array[loa]") - op.alter_column('task_orders', 'loa', new_column_name='loas') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.execute("ALTER TABLE task_orders ALTER COLUMN loas TYPE varchar USING loas[1]") - op.alter_column('task_orders', 'loas', new_column_name='loa') - # ### end Alembic commands ### diff --git a/alembic/versions/e0c6eb21771f_reset_migrations_with_new_schema.py b/alembic/versions/e0c6eb21771f_reset_migrations_with_new_schema.py new file mode 100644 index 00000000..df3b62ba --- /dev/null +++ b/alembic/versions/e0c6eb21771f_reset_migrations_with_new_schema.py @@ -0,0 +1,345 @@ +"""reset migrations with new schema + +Revision ID: e0c6eb21771f +Revises: +Create Date: 2019-06-19 15:17:59.205433 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision = 'e0c6eb21771f' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + connection = op.get_bind() + op.execute(""" + CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; + """) + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('attachments', + 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('filename', sa.String(), nullable=False), + sa.Column('object_name', sa.String(), nullable=False), + sa.Column('resource', sa.String(), nullable=True), + sa.Column('resource_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('object_name') + ) + op.create_index(op.f('ix_attachments_resource_id'), 'attachments', ['resource_id'], unique=False) + op.create_table('notification_recipients', + 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('email', sa.String(), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('permission_sets', + 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('name', sa.String(), nullable=False), + sa.Column('display_name', sa.String(), nullable=False), + sa.Column('description', sa.String(), nullable=False), + sa.Column('permissions', postgresql.ARRAY(sa.String()), server_default='{}', nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_permission_sets_name'), 'permission_sets', ['name'], unique=True) + op.create_index(op.f('ix_permission_sets_permissions'), 'permission_sets', ['permissions'], unique=False) + op.create_table('portfolios', + 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('deleted', sa.Boolean(), server_default=sa.text('false'), nullable=False), + sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False), + sa.Column('name', sa.String(), nullable=True), + sa.Column('defense_component', sa.String(), nullable=True), + sa.Column('app_migration', sa.String(), nullable=True), + sa.Column('complexity', sa.ARRAY(sa.String()), nullable=True), + sa.Column('complexity_other', sa.String(), nullable=True), + sa.Column('description', 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('native_apps', sa.String(), nullable=True), + sa.Column('team_experience', sa.String(), nullable=True), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('users', + 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('username', sa.String(), nullable=True), + sa.Column('email', sa.String(), nullable=True), + sa.Column('dod_id', sa.String(), nullable=False), + sa.Column('first_name', sa.String(), nullable=True), + sa.Column('last_name', sa.String(), nullable=True), + sa.Column('phone_number', sa.String(), nullable=True), + sa.Column('phone_ext', sa.String(), nullable=True), + sa.Column('service_branch', sa.String(), nullable=True), + sa.Column('citizenship', sa.String(), nullable=True), + sa.Column('designation', sa.String(), nullable=True), + sa.Column('date_latest_training', sa.Date(), nullable=True), + sa.Column('last_login', sa.TIMESTAMP(timezone=True), nullable=True), + sa.Column('last_session_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('provisional', sa.Boolean(), nullable=True), + sa.Column('cloud_id', sa.String(), nullable=True), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('dod_id') + ) + op.create_table('applications', + 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('deleted', sa.Boolean(), server_default=sa.text('false'), nullable=False), + sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False), + sa.Column('name', sa.String(), nullable=False), + sa.Column('description', sa.String(), nullable=False), + sa.Column('portfolio_id', postgresql.UUID(as_uuid=True), nullable=False), + sa.ForeignKeyConstraint(['portfolio_id'], ['portfolios.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('portfolio_roles', + 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('portfolio_id', postgresql.UUID(as_uuid=True), nullable=False), + sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('status', sa.Enum('ACTIVE', 'DISABLED', 'PENDING', name='status', native_enum=False), nullable=True), + sa.ForeignKeyConstraint(['portfolio_id'], ['portfolios.id'], ), + sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_portfolio_roles_portfolio_id'), 'portfolio_roles', ['portfolio_id'], unique=False) + op.create_index(op.f('ix_portfolio_roles_user_id'), 'portfolio_roles', ['user_id'], unique=False) + op.create_index('portfolio_role_user_portfolio', 'portfolio_roles', ['user_id', 'portfolio_id'], unique=True) + 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('portfolio_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('pdf_attachment_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('number', sa.String(), nullable=True), + sa.Column('signer_dod_id', sa.String(), nullable=True), + sa.Column('signed_at', sa.DateTime(), nullable=True), + sa.ForeignKeyConstraint(['pdf_attachment_id'], ['attachments.id'], ), + sa.ForeignKeyConstraint(['portfolio_id'], ['portfolios.id'], ), + sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('users_permission_sets', + sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('permission_set_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.ForeignKeyConstraint(['permission_set_id'], ['permission_sets.id'], ), + sa.ForeignKeyConstraint(['user_id'], ['users.id'], ) + ) + op.create_table('application_roles', + 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('deleted', sa.Boolean(), server_default=sa.text('false'), nullable=False), + sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False), + sa.Column('application_id', postgresql.UUID(as_uuid=True), nullable=False), + sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('status', sa.Enum('ACTIVE', 'DISABLED', 'PENDING', name='status', native_enum=False), nullable=True), + sa.ForeignKeyConstraint(['application_id'], ['applications.id'], ), + sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_index('application_role_user_application', 'application_roles', ['user_id', 'application_id'], unique=True) + op.create_index(op.f('ix_application_roles_application_id'), 'application_roles', ['application_id'], unique=False) + op.create_index(op.f('ix_application_roles_user_id'), 'application_roles', ['user_id'], unique=False) + op.create_table('audit_events', + 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('user_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('portfolio_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('application_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('changed_state', postgresql.JSONB(astext_type=sa.Text()), nullable=True), + sa.Column('event_details', postgresql.JSONB(astext_type=sa.Text()), nullable=True), + sa.Column('resource_type', sa.String(), nullable=False), + sa.Column('resource_id', postgresql.UUID(as_uuid=True), nullable=False), + sa.Column('display_name', sa.String(), nullable=True), + sa.Column('action', sa.String(), nullable=False), + sa.ForeignKeyConstraint(['application_id'], ['applications.id'], ), + sa.ForeignKeyConstraint(['portfolio_id'], ['portfolios.id'], ), + sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_audit_events_application_id'), 'audit_events', ['application_id'], unique=False) + op.create_index(op.f('ix_audit_events_portfolio_id'), 'audit_events', ['portfolio_id'], unique=False) + op.create_index(op.f('ix_audit_events_resource_id'), 'audit_events', ['resource_id'], unique=False) + op.create_index(op.f('ix_audit_events_user_id'), 'audit_events', ['user_id'], unique=False) + op.create_table('clins', + 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('task_order_id', postgresql.UUID(as_uuid=True), nullable=False), + sa.Column('number', sa.String(), nullable=True), + sa.Column('loas', postgresql.ARRAY(sa.String()), server_default='{}', nullable=True), + sa.Column('start_date', sa.Date(), nullable=True), + sa.Column('end_date', sa.Date(), nullable=True), + sa.Column('obligated_amount', sa.Numeric(scale=2), nullable=True), + sa.Column('jedi_clin_type', sa.Enum('JEDI_CLIN_1', 'JEDI_CLIN_2', 'JEDI_CLIN_3', 'JEDI_CLIN_4', name='jediclintype', native_enum=False), nullable=True), + sa.ForeignKeyConstraint(['task_order_id'], ['task_orders.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('environments', + 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('deleted', sa.Boolean(), server_default=sa.text('false'), nullable=False), + sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False), + sa.Column('name', sa.String(), nullable=False), + sa.Column('application_id', postgresql.UUID(as_uuid=True), nullable=False), + sa.Column('cloud_id', sa.String(), nullable=True), + sa.ForeignKeyConstraint(['application_id'], ['applications.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('portfolio_invitations', + 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('status', sa.Enum('ACCEPTED', 'REVOKED', 'PENDING', 'REJECTED_WRONG_USER', 'REJECTED_EXPIRED', name='status', native_enum=False), nullable=True), + sa.Column('expiration_time', sa.TIMESTAMP(timezone=True), nullable=True), + sa.Column('token', sa.String(), nullable=True), + sa.Column('email', sa.String(), nullable=False), + sa.Column('dod_id', sa.String(), nullable=True), + sa.Column('first_name', sa.String(), nullable=True), + sa.Column('last_name', sa.String(), nullable=True), + sa.Column('phone_number', sa.String(), nullable=True), + sa.Column('portfolio_role_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('inviter_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.ForeignKeyConstraint(['inviter_id'], ['users.id'], ), + sa.ForeignKeyConstraint(['portfolio_role_id'], ['portfolio_roles.id'], ), + sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_portfolio_invitations_inviter_id'), 'portfolio_invitations', ['inviter_id'], unique=False) + op.create_index(op.f('ix_portfolio_invitations_portfolio_role_id'), 'portfolio_invitations', ['portfolio_role_id'], unique=False) + op.create_index(op.f('ix_portfolio_invitations_token'), 'portfolio_invitations', ['token'], unique=False) + op.create_index(op.f('ix_portfolio_invitations_user_id'), 'portfolio_invitations', ['user_id'], unique=False) + op.create_table('portfolio_roles_permission_sets', + sa.Column('portfolio_role_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('permission_set_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.ForeignKeyConstraint(['permission_set_id'], ['permission_sets.id'], ), + sa.ForeignKeyConstraint(['portfolio_role_id'], ['portfolio_roles.id'], ) + ) + op.create_table('application_invitations', + 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('status', sa.Enum('ACCEPTED', 'REVOKED', 'PENDING', 'REJECTED_WRONG_USER', 'REJECTED_EXPIRED', name='status', native_enum=False), nullable=True), + sa.Column('expiration_time', sa.TIMESTAMP(timezone=True), nullable=True), + sa.Column('token', sa.String(), nullable=True), + sa.Column('email', sa.String(), nullable=False), + sa.Column('dod_id', sa.String(), nullable=True), + sa.Column('first_name', sa.String(), nullable=True), + sa.Column('last_name', sa.String(), nullable=True), + sa.Column('phone_number', sa.String(), nullable=True), + sa.Column('application_role_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('inviter_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.ForeignKeyConstraint(['application_role_id'], ['application_roles.id'], ), + sa.ForeignKeyConstraint(['inviter_id'], ['users.id'], ), + sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_application_invitations_application_role_id'), 'application_invitations', ['application_role_id'], unique=False) + op.create_index(op.f('ix_application_invitations_inviter_id'), 'application_invitations', ['inviter_id'], unique=False) + op.create_index(op.f('ix_application_invitations_token'), 'application_invitations', ['token'], unique=False) + op.create_index(op.f('ix_application_invitations_user_id'), 'application_invitations', ['user_id'], unique=False) + op.create_table('application_roles_permission_sets', + sa.Column('application_role_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.Column('permission_set_id', postgresql.UUID(as_uuid=True), nullable=True), + sa.ForeignKeyConstraint(['application_role_id'], ['application_roles.id'], ), + sa.ForeignKeyConstraint(['permission_set_id'], ['permission_sets.id'], ) + ) + op.create_table('environment_roles', + 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('deleted', sa.Boolean(), server_default=sa.text('false'), nullable=False), + sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False), + sa.Column('environment_id', postgresql.UUID(as_uuid=True), nullable=False), + sa.Column('role', sa.String(), nullable=True), + sa.Column('application_role_id', postgresql.UUID(as_uuid=True), nullable=False), + sa.ForeignKeyConstraint(['application_role_id'], ['application_roles.id'], ), + sa.ForeignKeyConstraint(['environment_id'], ['environments.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_index('environments_role_user_environment', 'environment_roles', ['application_role_id', 'environment_id'], unique=True) + connection = op.get_bind() + connection.execute(""" +CREATE OR REPLACE FUNCTION lock_dod_id() +RETURNS TRIGGER +AS $$ +BEGIN + IF NEW.dod_id != OLD.dod_id THEN + RAISE EXCEPTION 'DOD ID cannot be updated'; + END IF; + + RETURN NEW; +END +$$ LANGUAGE plpgsql; + +CREATE TRIGGER lock_dod_id +BEFORE UPDATE ON users +FOR EACH ROW + EXECUTE PROCEDURE lock_dod_id(); + """) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index('environments_role_user_environment', table_name='environment_roles') + op.drop_table('environment_roles') + op.drop_table('application_roles_permission_sets') + op.drop_index(op.f('ix_application_invitations_user_id'), table_name='application_invitations') + op.drop_index(op.f('ix_application_invitations_token'), table_name='application_invitations') + op.drop_index(op.f('ix_application_invitations_inviter_id'), table_name='application_invitations') + op.drop_index(op.f('ix_application_invitations_application_role_id'), table_name='application_invitations') + op.drop_table('application_invitations') + op.drop_table('portfolio_roles_permission_sets') + op.drop_index(op.f('ix_portfolio_invitations_user_id'), table_name='portfolio_invitations') + op.drop_index(op.f('ix_portfolio_invitations_token'), table_name='portfolio_invitations') + op.drop_index(op.f('ix_portfolio_invitations_portfolio_role_id'), table_name='portfolio_invitations') + op.drop_index(op.f('ix_portfolio_invitations_inviter_id'), table_name='portfolio_invitations') + op.drop_table('portfolio_invitations') + op.drop_table('environments') + op.drop_table('clins') + op.drop_index(op.f('ix_audit_events_user_id'), table_name='audit_events') + op.drop_index(op.f('ix_audit_events_resource_id'), table_name='audit_events') + op.drop_index(op.f('ix_audit_events_portfolio_id'), table_name='audit_events') + op.drop_index(op.f('ix_audit_events_application_id'), table_name='audit_events') + op.drop_table('audit_events') + op.drop_index(op.f('ix_application_roles_user_id'), table_name='application_roles') + op.drop_index(op.f('ix_application_roles_application_id'), table_name='application_roles') + op.drop_index('application_role_user_application', table_name='application_roles') + op.drop_table('application_roles') + op.drop_table('users_permission_sets') + op.drop_table('task_orders') + op.drop_index('portfolio_role_user_portfolio', table_name='portfolio_roles') + op.drop_index(op.f('ix_portfolio_roles_user_id'), table_name='portfolio_roles') + op.drop_index(op.f('ix_portfolio_roles_portfolio_id'), table_name='portfolio_roles') + op.drop_table('portfolio_roles') + op.drop_table('applications') + op.drop_table('users') + op.drop_table('portfolios') + op.drop_index(op.f('ix_permission_sets_permissions'), table_name='permission_sets') + op.drop_index(op.f('ix_permission_sets_name'), table_name='permission_sets') + op.drop_table('permission_sets') + op.drop_table('notification_recipients') + op.drop_index(op.f('ix_attachments_resource_id'), table_name='attachments') + op.drop_table('attachments') + connection = op.get_bind() + connection.execute(""" +DROP TRIGGER IF EXISTS lock_dod_id ON users; +DROP FUNCTION IF EXISTS lock_dod_id(); + """) + # ### end Alembic commands ### diff --git a/alembic/versions/e0fc3cd315c1_add_status_to_workspace_roles.py b/alembic/versions/e0fc3cd315c1_add_status_to_workspace_roles.py deleted file mode 100644 index a852e5ef..00000000 --- a/alembic/versions/e0fc3cd315c1_add_status_to_workspace_roles.py +++ /dev/null @@ -1,28 +0,0 @@ -"""add status to workspace_roles - -Revision ID: e0fc3cd315c1 -Revises: 994a80ee92c9 -Create Date: 2018-10-30 14:36:51.047876 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'e0fc3cd315c1' -down_revision = '994a80ee92c9' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('workspace_roles', sa.Column('status', sa.Enum('ACTIVE', 'DISABLED', 'PENDING', name='status', native_enum=False), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('workspace_roles', 'status') - # ### end Alembic commands ### diff --git a/alembic/versions/e1081cf01780_adjust_invitation_status.py b/alembic/versions/e1081cf01780_adjust_invitation_status.py deleted file mode 100644 index 368f39b8..00000000 --- a/alembic/versions/e1081cf01780_adjust_invitation_status.py +++ /dev/null @@ -1,44 +0,0 @@ -"""adjust invitation status - -Revision ID: e1081cf01780 -Revises: a9d8c6b6221c -Create Date: 2018-11-01 12:24:10.970963 - -""" -from alembic import op -import sqlalchemy as sa -from enum import Enum - -# revision identifiers, used by Alembic. -revision = 'e1081cf01780' -down_revision = 'a9d8c6b6221c' -branch_labels = None -depends_on = None - - -class Status(Enum): - ACCEPTED = "accepted" - REVOKED = "revoked" - PENDING = "pending" - REJECTED_WRONG_USER = "rejected_wrong_user" - REJECTED_EXPIRED = "rejected_expired" - -def upgrade(): - conn = op.get_bind() - constraints = ", ".join(["'{}'::character varying::text".format(s.name) for s in Status]) - conn.execute("ALTER TABLE invitations ALTER COLUMN status TYPE varchar(30)") - conn.execute("ALTER TABLE invitations DROP CONSTRAINT status") - conn.execute("ALTER TABLE invitations ADD CONSTRAINT status CHECK(status::text = ANY (ARRAY[{}]))".format(constraints)) - -class PreviousStatus(Enum): - ACCEPTED = "accepted" - REVOKED = "revoked" - PENDING = "pending" - REJECTED = "rejected" - -def downgrade(): - conn = op.get_bind() - constraints = ", ".join(["'{}'::character varying::text".format(s.name) for s in PreviousStatus]) - conn.execute("ALTER TABLE invitations ALTER COLUMN status TYPE varchar(8)") - conn.execute("ALTER TABLE invitations DROP CONSTRAINT status") - conn.execute("ALTER TABLE invitations ADD CONSTRAINT status CHECK(status::text = ANY (ARRAY[{}]))".format(constraints)) diff --git a/alembic/versions/ea8b5681b37c_make_user_id_nullable_for_request_review.py b/alembic/versions/ea8b5681b37c_make_user_id_nullable_for_request_review.py deleted file mode 100644 index 4d204355..00000000 --- a/alembic/versions/ea8b5681b37c_make_user_id_nullable_for_request_review.py +++ /dev/null @@ -1,32 +0,0 @@ -"""make user_id nullable for request_review - -Revision ID: ea8b5681b37c -Revises: e1081cf01780 -Create Date: 2018-11-05 14:42:42.175939 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = 'ea8b5681b37c' -down_revision = 'e1081cf01780' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.alter_column('request_reviews', 'user_id', - existing_type=postgresql.UUID(), - nullable=True) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.alter_column('request_reviews', 'user_id', - existing_type=postgresql.UUID(), - nullable=False) - # ### end Alembic commands ### diff --git a/alembic/versions/ec1ba2363191_move_defense_component_to_portfolio_.py b/alembic/versions/ec1ba2363191_move_defense_component_to_portfolio_.py deleted file mode 100644 index 83710195..00000000 --- a/alembic/versions/ec1ba2363191_move_defense_component_to_portfolio_.py +++ /dev/null @@ -1,52 +0,0 @@ -"""Move defense component to Portfolio level - -Revision ID: ec1ba2363191 -Revises: fb22e47972a3 -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 = 'fb22e47972a3' -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/alembic/versions/fa3ba4049218_full_prefix_for_certifying_official_on_.py b/alembic/versions/fa3ba4049218_full_prefix_for_certifying_official_on_.py deleted file mode 100644 index 24971589..00000000 --- a/alembic/versions/fa3ba4049218_full_prefix_for_certifying_official_on_.py +++ /dev/null @@ -1,27 +0,0 @@ -"""full prefix for certifying official on dd 254 - -Revision ID: fa3ba4049218 -Revises: 7d9f070012ae -Create Date: 2019-02-20 11:19:39.655438 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'fa3ba4049218' -down_revision = '7d9f070012ae' -branch_labels = None -depends_on = None - - -def upgrade(): - op.alter_column("dd_254s", "co_address", new_column_name="certifying_official_address") - op.alter_column("dd_254s", "co_phone", new_column_name="certifying_official_phone") - op.alter_column("dd_254s", "co_title", new_column_name="certifying_official_title") - -def downgrade(): - op.alter_column("dd_254s", "certifying_official_address", new_column_name="co_address") - op.alter_column("dd_254s", "certifying_official_phone", new_column_name="co_phone") - op.alter_column("dd_254s", "certifying_official_title", new_column_name="co_title") diff --git a/alembic/versions/fb22e47972a3_remove_legacy_task_order_table.py b/alembic/versions/fb22e47972a3_remove_legacy_task_order_table.py deleted file mode 100644 index 987cfaba..00000000 --- a/alembic/versions/fb22e47972a3_remove_legacy_task_order_table.py +++ /dev/null @@ -1,49 +0,0 @@ -"""Remove legacy task order table - -Revision ID: fb22e47972a3 -Revises: 978bf56e21b6 -Create Date: 2019-02-20 18:28:56.386152 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = 'fb22e47972a3' -down_revision = '978bf56e21b6' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('legacy_task_orders') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('legacy_task_orders', - sa.Column('time_created', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('time_updated', postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), autoincrement=False, nullable=False), - sa.Column('id', postgresql.UUID(), server_default=sa.text('uuid_generate_v4()'), autoincrement=False, nullable=False), - sa.Column('number', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('source', sa.VARCHAR(length=6), autoincrement=False, nullable=True), - sa.Column('funding_type', sa.VARCHAR(length=5), autoincrement=False, nullable=True), - sa.Column('funding_type_other', sa.VARCHAR(), autoincrement=False, nullable=True), - sa.Column('clin_0001', sa.INTEGER(), autoincrement=False, nullable=True), - sa.Column('clin_0003', sa.INTEGER(), autoincrement=False, nullable=True), - sa.Column('clin_1001', sa.INTEGER(), autoincrement=False, nullable=True), - sa.Column('clin_1003', sa.INTEGER(), autoincrement=False, nullable=True), - sa.Column('clin_2001', sa.INTEGER(), autoincrement=False, nullable=True), - sa.Column('clin_2003', sa.INTEGER(), autoincrement=False, nullable=True), - sa.Column('expiration_date', sa.DATE(), autoincrement=False, nullable=True), - sa.Column('attachment_id', postgresql.UUID(), autoincrement=False, nullable=True), - sa.CheckConstraint("(funding_type)::text = ANY ((ARRAY['RDTE'::character varying, 'OM'::character varying, 'PROC'::character varying, 'OTHER'::character varying])::text[])", name='fundingtype'), - sa.CheckConstraint("(source)::text = ANY ((ARRAY['MANUAL'::character varying, 'EDA'::character varying])::text[])", name='source'), - sa.ForeignKeyConstraint(['attachment_id'], ['attachments.id'], name='task_orders_attachment_id_fkey'), - sa.PrimaryKeyConstraint('id', name='task_orders_pkey'), - sa.UniqueConstraint('number', name='task_orders_number_key') - ) - # ### end Alembic commands ### diff --git a/alembic/versions/fc08d99bb7f7_users_to_permission_sets_join_table_.py b/alembic/versions/fc08d99bb7f7_users_to_permission_sets_join_table_.py deleted file mode 100644 index 578af938..00000000 --- a/alembic/versions/fc08d99bb7f7_users_to_permission_sets_join_table_.py +++ /dev/null @@ -1,37 +0,0 @@ -"""users to permission_sets join table, remove role rel - -Revision ID: fc08d99bb7f7 -Revises: a19138e386c4 -Create Date: 2019-03-18 06:13:43.128905 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = 'fc08d99bb7f7' -down_revision = 'a19138e386c4' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('users_permission_sets', - sa.Column('user_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.Column('permission_set_id', postgresql.UUID(as_uuid=True), nullable=True), - sa.ForeignKeyConstraint(['permission_set_id'], ['permission_sets.id'], ), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ) - ) - op.drop_constraint('users_atat_role_id_fkey', 'users', type_='foreignkey') - op.drop_column('users', 'atat_role_id') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('users', sa.Column('atat_role_id', postgresql.UUID(), autoincrement=False, nullable=True)) - op.create_foreign_key('users_atat_role_id_fkey', 'users', 'permission_sets', ['atat_role_id'], ['id']) - op.drop_table('users_permission_sets') - # ### end Alembic commands ###