ai-hackaton-backend/migrations/versions/c9bcdd2ddeeb_recreate_interview_sessions_with_.py

61 lines
1.8 KiB
Python

"""recreate interview_sessions with varchar status
Revision ID: c9bcdd2ddeeb
Revises: 9d415bf0ff2e
Create Date: 2025-09-03 18:07:59.433986
"""
from collections.abc import Sequence
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision: str = "c9bcdd2ddeeb"
down_revision: str | Sequence[str] | None = "9d415bf0ff2e"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None
def upgrade() -> None:
"""Upgrade schema."""
# Создаем таблицу interview_sessions заново
op.execute("DROP TABLE IF EXISTS interview_sessions CASCADE")
op.create_table(
"interview_sessions",
sa.Column("id", sa.Integer(), nullable=False),
sa.Column("resume_id", sa.Integer(), nullable=False),
sa.Column("room_name", sa.String(length=255), nullable=False),
sa.Column("status", sa.String(50), nullable=True, server_default="created"),
sa.Column("transcript", sa.Text(), nullable=True),
sa.Column("ai_feedback", sa.Text(), nullable=True),
sa.Column("dialogue_history", sa.JSON(), nullable=True),
sa.Column("ai_agent_pid", sa.Integer(), nullable=True),
sa.Column(
"ai_agent_status",
sa.String(50),
nullable=False,
server_default="not_started",
),
sa.Column(
"started_at",
sa.DateTime(),
nullable=False,
server_default=sa.text("CURRENT_TIMESTAMP"),
),
sa.Column("completed_at", sa.DateTime(), nullable=True),
sa.ForeignKeyConstraint(
["resume_id"],
["resume.id"],
),
sa.PrimaryKeyConstraint("id"),
sa.UniqueConstraint("room_name"),
)
def downgrade() -> None:
"""Downgrade schema."""
op.drop_table("interview_sessions")