cr-connect-workflow/migrations/versions/1c6e4e179f8e_.py

105 lines
4.5 KiB
Python

"""empty message
Revision ID: 1c6e4e179f8e
Revises:
Create Date: 2020-03-03 15:51:45.550681
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '1c6e4e179f8e'
down_revision = None
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('user',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('uid', sa.String(), nullable=True),
sa.Column('email_address', sa.String(), nullable=True),
sa.Column('display_name', sa.String(), nullable=True),
sa.Column('affiliation', sa.String(), nullable=True),
sa.Column('eppn', sa.String(), nullable=True),
sa.Column('first_name', sa.String(), nullable=True),
sa.Column('last_name', sa.String(), nullable=True),
sa.Column('title', sa.String(), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('uid')
)
op.create_table('workflow_spec',
sa.Column('id', sa.String(), nullable=False),
sa.Column('name', sa.String(), nullable=True),
sa.Column('display_name', sa.String(), nullable=True),
sa.Column('description', sa.Text(), nullable=True),
sa.Column('primary_process_id', sa.String(), nullable=True),
sa.PrimaryKeyConstraint('id')
)
op.create_table('study',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('title', sa.String(), nullable=True),
sa.Column('last_updated', sa.DateTime(timezone=True), nullable=True),
sa.Column('protocol_builder_status', sa.Enum('DRAFT', 'IN_PROCESS', 'IN_REVIEW', 'REVIEW_COMPLETE', 'INACTIVE', name='protocolbuilderstatus'), nullable=True),
sa.Column('primary_investigator_id', sa.String(), nullable=True),
sa.Column('sponsor', sa.String(), nullable=True),
sa.Column('hsr_number', sa.String(), nullable=True),
sa.Column('ind_number', sa.String(), nullable=True),
sa.Column('user_uid', sa.String(), nullable=False),
sa.Column('investigator_uids', sa.ARRAY(sa.String()), nullable=True),
sa.Column('inactive', sa.Boolean(), nullable=True),
sa.Column('requirements', sa.ARRAY(sa.Integer()), nullable=True),
sa.ForeignKeyConstraint(['user_uid'], ['user.uid'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('workflow',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('bpmn_workflow_json', sa.JSON(), nullable=True),
sa.Column('status', sa.Enum('new', 'user_input_required', 'waiting', 'complete', name='workflowstatus'), nullable=True),
sa.Column('study_id', sa.Integer(), nullable=True),
sa.Column('workflow_spec_id', sa.String(), nullable=True),
sa.ForeignKeyConstraint(['study_id'], ['study.id'], ),
sa.ForeignKeyConstraint(['workflow_spec_id'], ['workflow_spec.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('file',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('name', sa.String(), nullable=True),
sa.Column('version', sa.Integer(), nullable=True),
sa.Column('last_updated', sa.DateTime(timezone=True), nullable=True),
sa.Column('type', sa.Enum('bpmn', 'csv', 'dmn', 'doc', 'docx', 'gif', 'jpg', 'md', 'pdf', 'png', 'ppt', 'pptx', 'rtf', 'svg', 'svg_xml', 'txt', 'xls', 'xlsx', 'xml', 'zip', name='filetype'), nullable=True),
sa.Column('primary', sa.Boolean(), nullable=True),
sa.Column('content_type', sa.String(), nullable=True),
sa.Column('workflow_spec_id', sa.String(), nullable=True),
sa.Column('workflow_id', sa.Integer(), nullable=True),
sa.Column('study_id', sa.Integer(), nullable=True),
sa.Column('task_id', sa.String(), nullable=True),
sa.Column('form_field_key', sa.String(), nullable=True),
sa.ForeignKeyConstraint(['study_id'], ['study.id'], ),
sa.ForeignKeyConstraint(['workflow_id'], ['workflow.id'], ),
sa.ForeignKeyConstraint(['workflow_spec_id'], ['workflow_spec.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('file_data',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('data', sa.LargeBinary(), nullable=True),
sa.Column('file_model_id', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['file_model_id'], ['file.id'], ),
sa.PrimaryKeyConstraint('id')
)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('file_data')
op.drop_table('file')
op.drop_table('workflow')
op.drop_table('study')
op.drop_table('workflow_spec')
op.drop_table('user')
# ### end Alembic commands ###