petra-tool / backend / app / migrations / versions / e60e2f3b725d_init.py
e60e2f3b725d_init.py
Raw
"""init

Revision ID: e60e2f3b725d
Revises: 
Create Date: 2021-08-30 10:52:00.174166

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'e60e2f3b725d'
down_revision = None
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('label',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('name', sa.String(length=64), nullable=False),
    sa.Column('requirement', sa.Boolean(), nullable=False),
    sa.Column('rating', sa.Integer(), nullable=True),
    sa.Column('finish', sa.Boolean(), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('lens',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('name', sa.String(length=64), nullable=False),
    sa.PrimaryKeyConstraint('id'),
    sa.UniqueConstraint('name')
    )
    op.create_table('milestone',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('name', sa.String(length=64), nullable=False),
    sa.PrimaryKeyConstraint('id'),
    sa.UniqueConstraint('name')
    )
    op.create_table('phase',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('name', sa.String(length=64), nullable=False),
    sa.PrimaryKeyConstraint('id'),
    sa.UniqueConstraint('name')
    )
    op.create_table('purpose',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('name', sa.String(length=64), nullable=False),
    sa.PrimaryKeyConstraint('id'),
    sa.UniqueConstraint('name')
    )
    op.create_table('role',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('name', sa.String(length=64), nullable=False),
    sa.PrimaryKeyConstraint('id'),
    sa.UniqueConstraint('name')
    )
    op.create_table('settings',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('key', sa.String(length=64), nullable=False),
    sa.Column('description', sa.String(length=64), nullable=False),
    sa.Column('value', sa.Integer(), nullable=False),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('status',
    sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
    sa.Column('type', sa.String(length=64), nullable=False),
    sa.Column('name', sa.String(length=64), nullable=True),
    sa.PrimaryKeyConstraint('id', 'type')
    )
    op.create_table('team',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('name', sa.String(length=64), nullable=True),
    sa.Column('password_hash', sa.String(length=128), nullable=True),
    sa.Column('active', sa.Boolean(), nullable=True),
    sa.Column('sprint', sa.Float(), nullable=True),
    sa.PrimaryKeyConstraint('id'),
    sa.UniqueConstraint('name')
    )
    op.create_table('deliverable',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('phase_id', sa.Integer(), nullable=True),
    sa.Column('name', sa.String(length=64), nullable=True),
    sa.Column('description', sa.Text(), nullable=True),
    sa.Column('requires_bd', sa.Boolean(), nullable=True),
    sa.ForeignKeyConstraint(['phase_id'], ['phase.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('label_to_purpose',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('label_id', sa.Integer(), nullable=True),
    sa.Column('purpose_id', sa.Integer(), nullable=True),
    sa.ForeignKeyConstraint(['label_id'], ['label.id'], ),
    sa.ForeignKeyConstraint(['purpose_id'], ['purpose.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('matrix',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('phase_id', sa.Integer(), nullable=True),
    sa.Column('explore_true', sa.Integer(), nullable=False),
    sa.Column('evaluate_true', sa.Integer(), nullable=False),
    sa.Column('communicate_true', sa.Integer(), nullable=False),
    sa.Column('explore', sa.Float(), nullable=False),
    sa.Column('evaluate', sa.Float(), nullable=False),
    sa.Column('communicate', sa.Float(), nullable=False),
    sa.Column('desirable', sa.Integer(), nullable=False),
    sa.Column('feasible', sa.Integer(), nullable=False),
    sa.Column('viable', sa.Integer(), nullable=False),
    sa.Column('factor', sa.Float(), nullable=False),
    sa.ForeignKeyConstraint(['phase_id'], ['phase.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('method',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('phase_id', sa.Integer(), nullable=True),
    sa.Column('name', sa.String(length=64), nullable=True),
    sa.Column('description', sa.Text(), nullable=True),
    sa.Column('requires_bd', sa.Boolean(), nullable=True),
    sa.ForeignKeyConstraint(['phase_id'], ['phase.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('team_to_settings',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('team_id', sa.Integer(), nullable=True),
    sa.Column('settings_id', sa.Integer(), nullable=True),
    sa.ForeignKeyConstraint(['settings_id'], ['settings.id'], ),
    sa.ForeignKeyConstraint(['team_id'], ['team.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('user',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('team_id', sa.Integer(), nullable=True),
    sa.Column('role_id', sa.Integer(), nullable=True),
    sa.Column('name', sa.String(length=64), nullable=False),
    sa.Column('working_hours', sa.Integer(), nullable=True),
    sa.Column('available', sa.Boolean(), nullable=True),
    sa.ForeignKeyConstraint(['role_id'], ['role.id'], ),
    sa.ForeignKeyConstraint(['team_id'], ['team.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('cycle',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('team_id', sa.Integer(), nullable=True),
    sa.Column('status_id', sa.Integer(), nullable=True),
    sa.Column('public_id', sa.Integer(), nullable=True),
    sa.Column('date_start', sa.DateTime(), nullable=True),
    sa.Column('date_end', sa.DateTime(), nullable=True),
    sa.Column('phase_id', sa.Integer(), nullable=True),
    sa.Column('milestone_id', sa.Integer(), nullable=True),
    sa.Column('objective', sa.Text(), nullable=True),
    sa.Column('definition_of_done', sa.Text(), nullable=True),
    sa.Column('outcome', sa.Text(), nullable=True),
    sa.Column('insight', sa.Text(), nullable=True),
    sa.Column('rating_team', sa.Integer(), nullable=True),
    sa.Column('rating_pm', sa.Integer(), nullable=True),
    sa.Column('matrix_id', sa.Integer(), nullable=True),
    sa.Column('fidelity', sa.Float(), nullable=True),
    sa.ForeignKeyConstraint(['matrix_id'], ['matrix.id'], ),
    sa.ForeignKeyConstraint(['milestone_id'], ['milestone.id'], ),
    sa.ForeignKeyConstraint(['phase_id'], ['phase.id'], ),
    sa.ForeignKeyConstraint(['status_id'], ['status.id'], ),
    sa.ForeignKeyConstraint(['team_id'], ['team.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('task',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('label_id', sa.Integer(), nullable=True),
    sa.Column('status_id', sa.Integer(), nullable=True),
    sa.Column('owner_id', sa.Integer(), nullable=True),
    sa.Column('reviewer_id', sa.Integer(), nullable=True),
    sa.Column('purpose_id', sa.Integer(), nullable=True),
    sa.Column('date_added', sa.DateTime(), nullable=True),
    sa.Column('name', sa.String(length=120), nullable=False),
    sa.Column('description', sa.Text(), nullable=True),
    sa.Column('effort', sa.Integer(), nullable=False),
    sa.ForeignKeyConstraint(['label_id'], ['label.id'], ),
    sa.ForeignKeyConstraint(['owner_id'], ['user.id'], ),
    sa.ForeignKeyConstraint(['purpose_id'], ['purpose.id'], ),
    sa.ForeignKeyConstraint(['reviewer_id'], ['user.id'], ),
    sa.ForeignKeyConstraint(['status_id'], ['status.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('attachment',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('cycle_id', sa.Integer(), nullable=True),
    sa.Column('filename', sa.String(length=64), nullable=False),
    sa.Column('description', sa.String(length=256), nullable=True),
    sa.ForeignKeyConstraint(['cycle_id'], ['cycle.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('comment',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('task_id', sa.Integer(), nullable=True),
    sa.Column('timestamp', sa.DateTime(), nullable=True),
    sa.Column('text', sa.Text(), nullable=True),
    sa.ForeignKeyConstraint(['task_id'], ['task.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('cycle_to_deliverable',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('cycle_id', sa.Integer(), nullable=True),
    sa.Column('deliverable_id', sa.Integer(), nullable=True),
    sa.ForeignKeyConstraint(['cycle_id'], ['cycle.id'], ),
    sa.ForeignKeyConstraint(['deliverable_id'], ['deliverable.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('cycle_to_label',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('cycle_id', sa.Integer(), nullable=True),
    sa.Column('label_id', sa.Integer(), nullable=True),
    sa.ForeignKeyConstraint(['cycle_id'], ['cycle.id'], ),
    sa.ForeignKeyConstraint(['label_id'], ['label.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('cycle_to_lens',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('cycle_id', sa.Integer(), nullable=True),
    sa.Column('lens_id', sa.Integer(), nullable=True),
    sa.ForeignKeyConstraint(['cycle_id'], ['cycle.id'], ),
    sa.ForeignKeyConstraint(['lens_id'], ['lens.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_table('cycle_to_method',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('cycle_id', sa.Integer(), nullable=True),
    sa.Column('method_id', sa.Integer(), nullable=True),
    sa.ForeignKeyConstraint(['cycle_id'], ['cycle.id'], ),
    sa.ForeignKeyConstraint(['method_id'], ['method.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_table('cycle_to_method')
    op.drop_table('cycle_to_lens')
    op.drop_table('cycle_to_label')
    op.drop_table('cycle_to_deliverable')
    op.drop_table('comment')
    op.drop_table('attachment')
    op.drop_table('task')
    op.drop_table('cycle')
    op.drop_table('user')
    op.drop_table('team_to_settings')
    op.drop_table('method')
    op.drop_table('matrix')
    op.drop_table('label_to_purpose')
    op.drop_table('deliverable')
    op.drop_table('team')
    op.drop_table('status')
    op.drop_table('settings')
    op.drop_table('role')
    op.drop_table('purpose')
    op.drop_table('phase')
    op.drop_table('milestone')
    op.drop_table('lens')
    op.drop_table('label')
    # ### end Alembic commands ###