Skip to content

Commit

Permalink
Add Alembic migration for users and answer_options table
Browse files Browse the repository at this point in the history
  • Loading branch information
matinone committed Dec 28, 2023
1 parent 0e9cfe2 commit 8d410fa
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions alembic/versions/a49468686ff3_add_answers_and_users_tables.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
"""Add answers and users tables
Revision ID: a49468686ff3
Revises: d2e4b673963c
Create Date: 2023-12-28 17:08:12.949559
"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = 'a49468686ff3'
down_revision: Union[str, None] = 'd2e4b673963c'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('users',
sa.Column('username', sa.String(length=64), nullable=False),
sa.Column('email', sa.String(length=64), nullable=False),
sa.Column('password_hash', sa.String(), nullable=False),
sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.func.current_timestamp(), nullable=False),
sa.Column('id', sa.Integer(), nullable=False),
sa.PrimaryKeyConstraint('id')
)
op.create_index(op.f('ix_users_email'), 'users', ['email'], unique=True)
op.create_index(op.f('ix_users_username'), 'users', ['username'], unique=True)
op.create_table('answer_options',
sa.Column('question_id', sa.Integer(), nullable=False),
sa.Column('content', sa.String(length=256), nullable=False),
sa.Column('is_correct', sa.Boolean(), nullable=False),
sa.Column('id', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['question_id'], ['questions.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.add_column('quizzes', sa.Column('created_by', sa.Integer(), nullable=False))
op.create_foreign_key(None, 'quizzes', 'users', ['created_by'], ['id'])
# ### end Alembic commands ###


def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint(None, 'quizzes', type_='foreignkey')
op.drop_column('quizzes', 'created_by')
op.drop_table('answer_options')
op.drop_index(op.f('ix_users_username'), table_name='users')
op.drop_index(op.f('ix_users_email'), table_name='users')
op.drop_table('users')
# ### end Alembic commands ###

0 comments on commit 8d410fa

Please sign in to comment.