Skip to content
Snippets Groups Projects
Verified Commit dfee60c5 authored by Peter Stanko's avatar Peter Stanko
Browse files

New migrations

parent f6adaecb
No related branches found
No related tags found
1 merge request!14New migrations
Pipeline #
...@@ -81,7 +81,6 @@ def run_migrations_online(): ...@@ -81,7 +81,6 @@ def run_migrations_online():
finally: finally:
connection.close() connection.close()
if context.is_offline_mode(): if context.is_offline_mode():
run_migrations_offline() run_migrations_offline()
else: else:
......
"""empty message
Revision ID: a41188a20676
Revises: c30ed4861044
Create Date: 2018-08-18 14:49:28.652965
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'a41188a20676'
down_revision = 'c30ed4861044'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_unique_constraint('course_unique_codename', 'course', ['codename'])
op.add_column('group', sa.Column('codename', sa.String(length=25), nullable=False))
op.drop_constraint('g_course_unique_name', 'group', type_='unique')
op.create_unique_constraint('g_course_unique_name', 'group', ['course_id', 'codename'])
op.add_column('project', sa.Column('codename', sa.String(length=25), nullable=False))
op.drop_constraint('p_course_unique_name', 'project', type_='unique')
op.create_unique_constraint('p_course_unique_name', 'project', ['course_id', 'codename'])
op.alter_column('projectConfig', 'test_files_source',
existing_type=sa.VARCHAR(length=250),
nullable=True)
op.add_column('role', sa.Column('codename', sa.String(length=25), nullable=False))
op.drop_constraint('r_course_unique_name', 'role', type_='unique')
op.create_unique_constraint('r_course_unique_name', 'role', ['course_id', 'codename'])
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint('r_course_unique_name', 'role', type_='unique')
op.create_unique_constraint('r_course_unique_name', 'role', ['course_id', 'name'])
op.drop_column('role', 'codename')
op.alter_column('projectConfig', 'test_files_source',
existing_type=sa.VARCHAR(length=250),
nullable=False)
op.drop_constraint('p_course_unique_name', 'project', type_='unique')
op.create_unique_constraint('p_course_unique_name', 'project', ['course_id', 'name'])
op.drop_column('project', 'codename')
op.drop_constraint('g_course_unique_name', 'group', type_='unique')
op.create_unique_constraint('g_course_unique_name', 'group', ['course_id', 'name'])
op.drop_column('group', 'codename')
op.drop_constraint('course_unique_codename', 'course', type_='unique')
# ### end Alembic commands ###
"""empty message
Revision ID: c30ed4861044
Revises: f2cb9f5ed836
Create Date: 2018-06-05 17:59:10.388727
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'c30ed4861044'
down_revision = 'f2cb9f5ed836'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('course', sa.Column('description', sa.Text(), nullable=True))
op.add_column('group', sa.Column('description', sa.Text(), nullable=True))
op.add_column('project', sa.Column(
'assignment_url', sa.Text(), nullable=True))
op.add_column('projectConfig', sa.Column(
'submissions_cancellation_period', sa.Integer(), nullable=True))
op.add_column('submission', sa.Column(
'process_task_id', sa.String(length=36), nullable=True))
op.add_column('submission', sa.Column(
'storage_task_id', sa.String(length=36), nullable=True))
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('submission', 'storage_task_id')
op.drop_column('submission', 'process_task_id')
op.drop_column('projectConfig', 'submissions_cancellation_period')
op.drop_column('project', 'assignment_url')
op.drop_column('group', 'description')
op.drop_column('course', 'description')
# ### end Alembic commands ###
"""empty message
Revision ID: cc598701631b
Revises: a41188a20676
Create Date: 2018-08-19 16:50:54.898965
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'cc598701631b'
down_revision = 'a41188a20676'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint('course_codename_key', 'course', type_='unique')
op.drop_constraint('course_name_key', 'course', type_='unique')
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_unique_constraint('course_name_key', 'course', ['name'])
op.create_unique_constraint('course_codename_key', 'course', ['codename'])
# ### end Alembic commands ###
"""empty message
Revision ID: e897fc93ab4e
Revises:
Create Date: 2018-08-23 17:31:11.993908
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'e897fc93ab4e'
down_revision = None
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('component',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=30), nullable=False),
sa.Column('secret', sa.String(length=250), nullable=True),
sa.Column('ip_address', sa.String(length=50), nullable=True),
sa.Column('type', sa.String(length=25), nullable=True),
sa.Column('notes', sa.Text(), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('name')
)
op.create_table('course',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('name', sa.String(length=50), nullable=False),
sa.Column('codename', sa.String(length=30), nullable=False),
sa.Column('description', sa.Text(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('notes_access_token', sa.String(length=256), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('codename', name='course_unique_codename')
)
op.create_table('user',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('uco', sa.Integer(), nullable=True),
sa.Column('email', sa.String(length=50), nullable=False),
sa.Column('username', sa.String(length=30), nullable=False),
sa.Column('name', sa.String(length=50), nullable=True),
sa.Column('is_admin', sa.Boolean(), nullable=True),
sa.Column('password_hash', sa.String(length=120), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('email'),
sa.UniqueConstraint('username')
)
op.create_table('group',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('name', sa.String(length=50), nullable=False),
sa.Column('codename', sa.String(length=30), nullable=False),
sa.Column('description', sa.Text(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('course_id', sa.String(length=36), nullable=False),
sa.ForeignKeyConstraint(['course_id'], ['course.id'], ondelete='cascade'),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('course_id', 'codename', name='g_course_unique_name')
)
op.create_table('project',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('name', sa.String(length=50), nullable=False),
sa.Column('codename', sa.String(length=30), nullable=False),
sa.Column('description', sa.Text(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('assignment_url', sa.Text(), nullable=True),
sa.Column('course_id', sa.String(length=36), nullable=False),
sa.ForeignKeyConstraint(['course_id'], ['course.id'], ondelete='cascade'),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('course_id', 'codename', name='p_course_unique_name')
)
op.create_table('role',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('name', sa.String(length=50), nullable=False),
sa.Column('codename', sa.String(length=30), nullable=False),
sa.Column('description', sa.Text(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('course_id', sa.String(length=36), nullable=False),
sa.ForeignKeyConstraint(['course_id'], ['course.id'], ondelete='cascade'),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('course_id', 'codename', name='r_course_unique_name')
)
op.create_table('projectConfig',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('project_id', sa.String(length=36), nullable=False),
sa.Column('submissions_cancellation_period', sa.Integer(), nullable=True),
sa.Column('test_files_source', sa.String(length=600), nullable=True),
sa.Column('file_whitelist', sa.Text(), nullable=True),
sa.Column('pre_submit_script', sa.Text(), nullable=True),
sa.Column('post_submit_script', sa.Text(), nullable=True),
sa.Column('submission_parameters', sa.Text(), nullable=True),
sa.Column('submission_scheduler_config', sa.Text(), nullable=True),
sa.Column('_submissions_allowed_from', sa.TIMESTAMP(timezone=True), nullable=True),
sa.Column('_submissions_allowed_to', sa.TIMESTAMP(timezone=True), nullable=True),
sa.Column('_archive_from', sa.TIMESTAMP(timezone=True), nullable=True),
sa.ForeignKeyConstraint(['project_id'], ['project.id'], ondelete='cascade'),
sa.PrimaryKeyConstraint('id')
)
op.create_table('projects_groups',
sa.Column('project_id', sa.String(length=36), nullable=True),
sa.Column('group_id', sa.String(length=36), nullable=True),
sa.ForeignKeyConstraint(['group_id'], ['group.id'], ondelete='cascade'),
sa.ForeignKeyConstraint(['project_id'], ['project.id'], ondelete='cascade')
)
op.create_table('rolePermissions',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('role_id', sa.String(length=36), nullable=False),
sa.Column('view_course_limited', sa.Boolean(), nullable=False),
sa.Column('view_course_full', sa.Boolean(), nullable=False),
sa.Column('update_course', sa.Boolean(), nullable=False),
sa.Column('handle_notes_access_token', sa.Boolean(), nullable=False),
sa.Column('assign_roles', sa.Boolean(), nullable=False),
sa.Column('write_roles', sa.Boolean(), nullable=False),
sa.Column('read_roles', sa.Boolean(), nullable=False),
sa.Column('write_groups', sa.Boolean(), nullable=False),
sa.Column('read_groups', sa.Boolean(), nullable=False),
sa.Column('write_projects', sa.Boolean(), nullable=False),
sa.Column('read_projects', sa.Boolean(), nullable=False),
sa.Column('archive_projects', sa.Boolean(), nullable=False),
sa.Column('create_submissions', sa.Boolean(), nullable=False),
sa.Column('resubmit_submissions', sa.Boolean(), nullable=False),
sa.Column('evaluate_submissions', sa.Boolean(), nullable=False),
sa.Column('read_submissions_all', sa.Boolean(), nullable=False),
sa.Column('read_submissions_groups', sa.Boolean(), nullable=False),
sa.Column('read_submissions_own', sa.Boolean(), nullable=False),
sa.Column('read_all_submission_files', sa.Boolean(), nullable=False),
sa.Column('read_reviews_all', sa.Boolean(), nullable=False),
sa.Column('read_reviews_groups', sa.Boolean(), nullable=False),
sa.Column('read_reviews_own', sa.Boolean(), nullable=False),
sa.Column('write_reviews_all', sa.Boolean(), nullable=False),
sa.Column('write_reviews_group', sa.Boolean(), nullable=False),
sa.Column('write_reviews_own', sa.Boolean(), nullable=False),
sa.ForeignKeyConstraint(['role_id'], ['role.id'], ondelete='cascade'),
sa.PrimaryKeyConstraint('id')
)
op.create_table('submission',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('scheduled_for', sa.TIMESTAMP(timezone=True), nullable=True),
sa.Column('parameters', sa.Text(), nullable=False),
sa.Column('state', sa.Enum('CREATED', 'READY', 'QUEUED', 'IN_PROGRESS', 'FINISHED', 'CANCELLED', 'ABORTED', 'ARCHIVED', name='SubmissionState'), nullable=False),
sa.Column('note', sa.Text(), nullable=True),
sa.Column('user_id', sa.String(length=36), nullable=False),
sa.Column('project_id', sa.String(length=36), nullable=False),
sa.Column('storage_task_id', sa.String(length=36), nullable=True),
sa.Column('process_task_id', sa.String(length=36), nullable=True),
sa.ForeignKeyConstraint(['project_id'], ['project.id'], ondelete='cascade'),
sa.ForeignKeyConstraint(['user_id'], ['user.id'], ondelete='cascade'),
sa.PrimaryKeyConstraint('id')
)
op.create_table('users_groups',
sa.Column('user_id', sa.String(length=36), nullable=True),
sa.Column('group_id', sa.String(length=36), nullable=True),
sa.ForeignKeyConstraint(['group_id'], ['group.id'], ondelete='cascade'),
sa.ForeignKeyConstraint(['user_id'], ['user.id'], ondelete='cascade')
)
op.create_table('users_roles',
sa.Column('user_id', sa.String(length=36), nullable=True),
sa.Column('role_id', sa.String(length=36), nullable=True),
sa.ForeignKeyConstraint(['role_id'], ['role.id'], ondelete='cascade'),
sa.ForeignKeyConstraint(['user_id'], ['user.id'], ondelete='cascade')
)
op.create_table('review',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('submission_id', sa.String(length=36), nullable=False),
sa.ForeignKeyConstraint(['submission_id'], ['submission.id'], ondelete='cascade'),
sa.PrimaryKeyConstraint('id')
)
op.create_table('reviewItem',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('review_id', sa.String(length=36), nullable=False),
sa.Column('user_id', sa.String(length=36), nullable=True),
sa.Column('content', sa.Text(), nullable=True),
sa.Column('file', sa.String(length=256), nullable=False),
sa.Column('line', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['review_id'], ['review.id'], ondelete='cascade'),
sa.ForeignKeyConstraint(['user_id'], ['user.id'], ondelete='cascade'),
sa.PrimaryKeyConstraint('id')
)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('reviewItem')
op.drop_table('review')
op.drop_table('users_roles')
op.drop_table('users_groups')
op.drop_table('submission')
op.drop_table('rolePermissions')
op.drop_table('projects_groups')
op.drop_table('projectConfig')
op.drop_table('role')
op.drop_table('project')
op.drop_table('group')
op.drop_table('user')
op.drop_table('course')
op.drop_table('component')
# ### end Alembic commands ###
"""empty message
Revision ID: e9e9e6a47618
Revises: efdf2488a176
Create Date: 2018-08-19 22:42:00.221743
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'e9e9e6a47618'
down_revision = 'efdf2488a176'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint('projects_groups_project_id_fkey', 'projects_groups', type_='foreignkey')
op.drop_constraint('projects_groups_group_id_fkey', 'projects_groups', type_='foreignkey')
op.create_foreign_key(None, 'projects_groups', 'project', ['project_id'], ['id'], ondelete='cascade')
op.create_foreign_key(None, 'projects_groups', 'group', ['group_id'], ['id'], ondelete='cascade')
op.drop_constraint('reviewItem_user_id_fkey', 'reviewItem', type_='foreignkey')
op.create_foreign_key(None, 'reviewItem', 'user', ['user_id'], ['id'], ondelete='cascade')
op.drop_constraint('submission_user_id_fkey', 'submission', type_='foreignkey')
op.create_foreign_key(None, 'submission', 'user', ['user_id'], ['id'], ondelete='cascade')
op.drop_constraint('users_groups_user_id_fkey', 'users_groups', type_='foreignkey')
op.drop_constraint('users_groups_group_id_fkey', 'users_groups', type_='foreignkey')
op.create_foreign_key(None, 'users_groups', 'user', ['user_id'], ['id'], ondelete='cascade')
op.create_foreign_key(None, 'users_groups', 'group', ['group_id'], ['id'], ondelete='cascade')
op.drop_constraint('users_roles_user_id_fkey', 'users_roles', type_='foreignkey')
op.drop_constraint('users_roles_role_id_fkey', 'users_roles', type_='foreignkey')
op.create_foreign_key(None, 'users_roles', 'user', ['user_id'], ['id'], ondelete='cascade')
op.create_foreign_key(None, 'users_roles', 'role', ['role_id'], ['id'], ondelete='cascade')
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint(None, 'users_roles', type_='foreignkey')
op.drop_constraint(None, 'users_roles', type_='foreignkey')
op.create_foreign_key('users_roles_role_id_fkey', 'users_roles', 'role', ['role_id'], ['id'])
op.create_foreign_key('users_roles_user_id_fkey', 'users_roles', 'user', ['user_id'], ['id'])
op.drop_constraint(None, 'users_groups', type_='foreignkey')
op.drop_constraint(None, 'users_groups', type_='foreignkey')
op.create_foreign_key('users_groups_group_id_fkey', 'users_groups', 'group', ['group_id'], ['id'])
op.create_foreign_key('users_groups_user_id_fkey', 'users_groups', 'user', ['user_id'], ['id'])
op.drop_constraint(None, 'submission', type_='foreignkey')
op.create_foreign_key('submission_user_id_fkey', 'submission', 'user', ['user_id'], ['id'])
op.drop_constraint(None, 'reviewItem', type_='foreignkey')
op.create_foreign_key('reviewItem_user_id_fkey', 'reviewItem', 'user', ['user_id'], ['id'])
op.drop_constraint(None, 'projects_groups', type_='foreignkey')
op.drop_constraint(None, 'projects_groups', type_='foreignkey')
op.create_foreign_key('projects_groups_group_id_fkey', 'projects_groups', 'group', ['group_id'], ['id'])
op.create_foreign_key('projects_groups_project_id_fkey', 'projects_groups', 'project', ['project_id'], ['id'])
# ### end Alembic commands ###
"""empty message
Revision ID: efdf2488a176
Revises: cc598701631b
Create Date: 2018-08-19 17:49:36.200553
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'efdf2488a176'
down_revision = 'cc598701631b'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint('group_course_id_fkey', 'group', type_='foreignkey')
op.create_foreign_key(None, 'group', 'course', ['course_id'], ['id'], ondelete='cascade')
op.drop_constraint('project_course_id_fkey', 'project', type_='foreignkey')
op.create_foreign_key(None, 'project', 'course', ['course_id'], ['id'], ondelete='cascade')
op.drop_constraint('projectConfig_project_id_fkey', 'projectConfig', type_='foreignkey')
op.create_foreign_key(None, 'projectConfig', 'project', ['project_id'], ['id'], ondelete='cascade')
op.drop_constraint('review_submission_id_fkey', 'review', type_='foreignkey')
op.create_foreign_key(None, 'review', 'submission', ['submission_id'], ['id'], ondelete='cascade')
op.drop_constraint('reviewItem_review_id_fkey', 'reviewItem', type_='foreignkey')
op.create_foreign_key(None, 'reviewItem', 'review', ['review_id'], ['id'], ondelete='cascade')
op.drop_constraint('role_course_id_fkey', 'role', type_='foreignkey')
op.create_foreign_key(None, 'role', 'course', ['course_id'], ['id'], ondelete='cascade')
op.drop_constraint('rolePermissions_role_id_fkey', 'rolePermissions', type_='foreignkey')
op.create_foreign_key(None, 'rolePermissions', 'role', ['role_id'], ['id'], ondelete='cascade')
op.drop_constraint('submission_project_id_fkey', 'submission', type_='foreignkey')
op.create_foreign_key(None, 'submission', 'project', ['project_id'], ['id'], ondelete='cascade')
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint(None, 'submission', type_='foreignkey')
op.create_foreign_key('submission_project_id_fkey', 'submission', 'project', ['project_id'], ['id'])
op.drop_constraint(None, 'rolePermissions', type_='foreignkey')
op.create_foreign_key('rolePermissions_role_id_fkey', 'rolePermissions', 'role', ['role_id'], ['id'])
op.drop_constraint(None, 'role', type_='foreignkey')
op.create_foreign_key('role_course_id_fkey', 'role', 'course', ['course_id'], ['id'])
op.drop_constraint(None, 'reviewItem', type_='foreignkey')
op.create_foreign_key('reviewItem_review_id_fkey', 'reviewItem', 'review', ['review_id'], ['id'])
op.drop_constraint(None, 'review', type_='foreignkey')
op.create_foreign_key('review_submission_id_fkey', 'review', 'submission', ['submission_id'], ['id'])
op.drop_constraint(None, 'projectConfig', type_='foreignkey')
op.create_foreign_key('projectConfig_project_id_fkey', 'projectConfig', 'project', ['project_id'], ['id'])
op.drop_constraint(None, 'project', type_='foreignkey')
op.create_foreign_key('project_course_id_fkey', 'project', 'course', ['course_id'], ['id'])
op.drop_constraint(None, 'group', type_='foreignkey')
op.create_foreign_key('group_course_id_fkey', 'group', 'course', ['course_id'], ['id'])
# ### end Alembic commands ###
"""empty message id = db.Column(db.String(length=36), default=lambda: str(
uuid.uuid4()), primary_key=True)
Revision ID: f2cb9f5ed836
Revises:
Create Date: 2018-05-19 21:43:38.548957
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'f2cb9f5ed836'
down_revision = None
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('component',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=30), nullable=False),
sa.Column('secret', sa.String(length=250), nullable=True),
sa.Column('ip_address', sa.String(
length=50), nullable=True),
sa.Column('type', sa.String(length=25), nullable=True),
sa.Column('notes', sa.Text(), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('name')
)
op.create_table('course',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=50), nullable=False),
sa.Column('codename', sa.String(
length=30), nullable=False),
sa.Column('notes_access_token', sa.String(
length=256), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('codename'),
sa.UniqueConstraint('name')
)
op.create_table('user',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('uco', sa.Integer(), nullable=True),
sa.Column('email', sa.String(length=50), nullable=False),
sa.Column('username', sa.String(
length=30), nullable=False),
sa.Column('name', sa.String(length=50), nullable=True),
sa.Column('is_admin', sa.Boolean(), nullable=True),
sa.Column('password_hash', sa.String(
length=120), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('email'),
sa.UniqueConstraint('username')
)
op.create_table('group',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=20), nullable=False),
sa.Column('course_id', sa.String(
length=36), nullable=False),
sa.ForeignKeyConstraint(['course_id'], ['course.id'], ),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('course_id', 'name',
name='g_course_unique_name')
)
op.create_table('project',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=50), nullable=False),
sa.Column('description', sa.Text(), nullable=True),
sa.Column('course_id', sa.String(
length=36), nullable=False),
sa.ForeignKeyConstraint(['course_id'], ['course.id'], ),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('course_id', 'name',
name='p_course_unique_name')
)
op.create_table('role',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=50), nullable=False),
sa.Column('description', sa.Text(), nullable=True),
sa.Column('course_id', sa.String(
length=36), nullable=False),
sa.ForeignKeyConstraint(['course_id'], ['course.id'], ),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('course_id', 'name',
name='r_course_unique_name')
)
op.create_table('projectConfig',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('project_id', sa.String(
length=36), nullable=False),
sa.Column('test_files_source', sa.String(
length=250), nullable=False),
sa.Column('file_whitelist', sa.Text(), nullable=True),
sa.Column('pre_submit_script', sa.Text(), nullable=True),
sa.Column('post_submit_script', sa.Text(), nullable=True),
sa.Column('submission_parameters',
sa.Text(), nullable=True),
sa.Column('submission_scheduler_config',
sa.Text(), nullable=True),
sa.Column('_submissions_allowed_from',
sa.TIMESTAMP(timezone=True), nullable=True),
sa.Column('_submissions_allowed_to', sa.TIMESTAMP(
timezone=True), nullable=True),
sa.Column('_archive_from', sa.TIMESTAMP(
timezone=True), nullable=True),
sa.ForeignKeyConstraint(['project_id'], ['project.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('projects_groups',
sa.Column('project_id', sa.String(
length=36), nullable=True),
sa.Column('group_id', sa.String(length=36), nullable=True),
sa.ForeignKeyConstraint(['group_id'], ['group.id'], ),
sa.ForeignKeyConstraint(['project_id'], ['project.id'], )
)
op.create_table('rolePermissions',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('role_id', sa.String(length=36), nullable=False),
sa.Column('view_course_limited',
sa.Boolean(), nullable=False),
sa.Column('view_course_full',
sa.Boolean(), nullable=False),
sa.Column('update_course', sa.Boolean(), nullable=False),
sa.Column('handle_notes_access_token',
sa.Boolean(), nullable=False),
sa.Column('assign_roles', sa.Boolean(), nullable=False),
sa.Column('write_roles', sa.Boolean(), nullable=False),
sa.Column('read_roles', sa.Boolean(), nullable=False),
sa.Column('write_groups', sa.Boolean(), nullable=False),
sa.Column('read_groups', sa.Boolean(), nullable=False),
sa.Column('write_projects', sa.Boolean(), nullable=False),
sa.Column('read_projects', sa.Boolean(), nullable=False),
sa.Column('archive_projects',
sa.Boolean(), nullable=False),
sa.Column('create_submissions',
sa.Boolean(), nullable=False),
sa.Column('resubmit_submissions',
sa.Boolean(), nullable=False),
sa.Column('evaluate_submissions',
sa.Boolean(), nullable=False),
sa.Column('read_submissions_all',
sa.Boolean(), nullable=False),
sa.Column('read_submissions_groups',
sa.Boolean(), nullable=False),
sa.Column('read_submissions_own',
sa.Boolean(), nullable=False),
sa.Column('read_all_submission_files',
sa.Boolean(), nullable=False),
sa.Column('read_reviews_all',
sa.Boolean(), nullable=False),
sa.Column('read_reviews_groups',
sa.Boolean(), nullable=False),
sa.Column('read_reviews_own',
sa.Boolean(), nullable=False),
sa.Column('write_reviews_all',
sa.Boolean(), nullable=False),
sa.Column('write_reviews_group',
sa.Boolean(), nullable=False),
sa.Column('write_reviews_own',
sa.Boolean(), nullable=False),
sa.ForeignKeyConstraint(['role_id'], ['role.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('submission',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('scheduled_for', sa.TIMESTAMP(
timezone=True), nullable=True),
sa.Column('parameters', sa.Text(), nullable=False),
sa.Column('state', sa.Enum('CREATED', 'READY', 'QUEUED', 'IN_PROGRESS', 'FINISHED',
'CANCELLED', 'ABORTED', 'ARCHIVED', name='SubmissionState'), nullable=False),
sa.Column('note', sa.Text(), nullable=True),
sa.Column('user_id', sa.String(length=36), nullable=False),
sa.Column('project_id', sa.String(
length=36), nullable=False),
sa.ForeignKeyConstraint(['project_id'], ['project.id'], ),
sa.ForeignKeyConstraint(['user_id'], ['user.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('users_groups',
sa.Column('user_id', sa.String(length=36), nullable=True),
sa.Column('group_id', sa.String(length=36), nullable=True),
sa.ForeignKeyConstraint(['group_id'], ['group.id'], ),
sa.ForeignKeyConstraint(['user_id'], ['user.id'], )
)
op.create_table('users_roles',
sa.Column('user_id', sa.String(length=36), nullable=True),
sa.Column('role_id', sa.String(length=36), nullable=True),
sa.ForeignKeyConstraint(['role_id'], ['role.id'], ),
sa.ForeignKeyConstraint(['user_id'], ['user.id'], )
)
op.create_table('review',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('submission_id', sa.String(
length=36), nullable=False),
sa.ForeignKeyConstraint(
['submission_id'], ['submission.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('reviewItem',
sa.Column('created_at', sa.TIMESTAMP(), nullable=True),
sa.Column('updated_at', sa.TIMESTAMP(), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('review_id', sa.String(
length=36), nullable=False),
sa.Column('user_id', sa.String(length=36), nullable=True),
sa.Column('content', sa.Text(), nullable=True),
sa.Column('file', sa.String(length=256), nullable=False),
sa.Column('line', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['review_id'], ['review.id'], ),
sa.ForeignKeyConstraint(['user_id'], ['user.id'], ),
sa.PrimaryKeyConstraint('id')
)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('reviewItem')
op.drop_table('review')
op.drop_table('users_roles')
op.drop_table('users_groups')
op.drop_table('submission')
op.drop_table('rolePermissions')
op.drop_table('projects_groups')
op.drop_table('projectConfig')
op.drop_table('role')
op.drop_table('project')
op.drop_table('group')
op.drop_table('user')
op.drop_table('course')
op.drop_table('component')
# ### end Alembic commands ###
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment