Files
yunke/yunke-server/migrations/versions/a1b2c3d4e5f6_voice_clip_table.py
T

50 lines
1.9 KiB
Python
Raw Normal View History

"""voice_clip table
Revision ID: a1b2c3d4e5f6
Revises: 8c4f1d2a9e6b
Create Date: 2026-08-10 00:00:00.000000
"""
from collections.abc import Sequence
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision: str = 'a1b2c3d4e5f6'
down_revision: str | Sequence[str] | None = '8c4f1d2a9e6b'
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None
def upgrade() -> None:
"""Upgrade schema."""
op.create_table('voice_clip',
sa.Column('voice_clip_id', sa.BigInteger(), autoincrement=False, nullable=False),
sa.Column('user_id', sa.String(length=64), nullable=False),
sa.Column('user_real_name', sa.String(length=255), nullable=True),
sa.Column('wx_id', sa.String(length=128), nullable=True),
sa.Column('talker', sa.String(length=128), nullable=True),
sa.Column('status', sa.String(length=32), nullable=True),
sa.Column('is_send', sa.Boolean(), nullable=True),
sa.Column('company_code', sa.String(length=64), nullable=True),
sa.Column('start_time', sa.BigInteger(), nullable=True),
sa.Column('end_time', sa.BigInteger(), nullable=True),
sa.Column('oss_file_name', sa.String(length=1024), nullable=True),
sa.Column('mp3_duration', sa.Integer(), nullable=True),
sa.Column('duration_format', sa.String(length=32), nullable=True),
sa.Column('channel', sa.String(length=16), nullable=False),
sa.Column('raw_json', sa.JSON(), nullable=True),
sa.Column('fetched_at', sa.DateTime(), server_default=sa.func.now(), nullable=False),
sa.Column('updated_at', sa.DateTime(), server_default=sa.func.now(), nullable=False),
sa.PrimaryKeyConstraint('voice_clip_id')
)
op.create_index('ix_voice_clip_user_time', 'voice_clip', ['user_id', 'start_time'], unique=False)
def downgrade() -> None:
"""Downgrade schema."""
op.drop_index('ix_voice_clip_user_time', table_name='voice_clip')
op.drop_table('voice_clip')