tech-pm-4vuyq1/alembic/versions/20250415_104404_e930ea23_update_biblequiz.py

53 lines
2.2 KiB
Python

"""create tables for bible quiz
Revision ID: 2c3f98a4d512
Revises: 0001
Create Date: 2023-05-23 11:05:42.300123
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.sql import func
import uuid
# revision identifiers, used by Alembic.
revision = '2c3f98a4d512'
down_revision = '0001'
branch_labels = None
depends_on = None
def upgrade():
op.create_table(
'bible_quizzes',
sa.Column('id', sa.String(36), primary_key=True, default=lambda: str(uuid.uuid4())),
sa.Column('name', sa.String(), nullable=False),
sa.Column('description', sa.Text(), nullable=True),
sa.Column('is_active', sa.Boolean(), nullable=True, server_default='1'),
sa.Column('created_at', sa.DateTime(), nullable=True, server_default=func.now()),
sa.Column('updated_at', sa.DateTime(), nullable=True, server_default=func.now(), onupdate=func.now())
)
op.create_table(
'bible_quiz_questions',
sa.Column('id', sa.String(36), primary_key=True, default=lambda: str(uuid.uuid4())),
sa.Column('question_text', sa.Text(), nullable=False),
sa.Column('quiz_id', sa.String(36), nullable=False),
sa.Column('created_at', sa.DateTime(), nullable=True, server_default=func.now()),
sa.Column('updated_at', sa.DateTime(), nullable=True, server_default=func.now(), onupdate=func.now()),
sa.ForeignKeyConstraint(['quiz_id'], ['bible_quizzes.id'], )
)
op.create_table(
'bible_quiz_answers',
sa.Column('id', sa.String(36), primary_key=True, default=lambda: str(uuid.uuid4())),
sa.Column('answer_text', sa.Text(), nullable=False),
sa.Column('is_correct', sa.Boolean(), nullable=True, server_default='0'),
sa.Column('question_id', sa.String(36), nullable=False),
sa.Column('created_at', sa.DateTime(), nullable=True, server_default=func.now()),
sa.Column('updated_at', sa.DateTime(), nullable=True, server_default=func.now(), onupdate=func.now()),
sa.ForeignKeyConstraint(['question_id'], ['bible_quiz_questions.id'], )
)
def downgrade():
op.drop_table('bible_quiz_answers')
op.drop_table('bible_quiz_questions')
op.drop_table('bible_quizzes')