TradingAgents/backend/alembic/versions/001_change_text_to_longtext.py

106 lines
3.6 KiB
Python

"""Change TEXT columns to LONGTEXT for analysis reports
Revision ID: 001
Revises:
Create Date: 2025-07-07 16:30:00.000000
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects.mysql import LONGTEXT
# revision identifiers, used by Alembic.
revision: str = '001'
down_revision: Union[str, None] = None
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
"""Change TEXT columns to LONGTEXT for better capacity."""
# Change all report columns from TEXT to LONGTEXT
op.alter_column('analyses', 'market_report',
existing_type=sa.TEXT(),
type_=LONGTEXT(),
existing_nullable=True)
op.alter_column('analyses', 'sentiment_report',
existing_type=sa.TEXT(),
type_=LONGTEXT(),
existing_nullable=True)
op.alter_column('analyses', 'news_report',
existing_type=sa.TEXT(),
type_=LONGTEXT(),
existing_nullable=True)
op.alter_column('analyses', 'fundamentals_report',
existing_type=sa.TEXT(),
type_=LONGTEXT(),
existing_nullable=True)
op.alter_column('analyses', 'trader_investment_plan',
existing_type=sa.TEXT(),
type_=LONGTEXT(),
existing_nullable=True)
op.alter_column('analyses', 'final_trade_decision',
existing_type=sa.TEXT(),
type_=LONGTEXT(),
existing_nullable=True)
op.alter_column('analyses', 'final_report',
existing_type=sa.TEXT(),
type_=LONGTEXT(),
existing_nullable=True)
op.alter_column('analyses', 'error_message',
existing_type=sa.TEXT(),
type_=LONGTEXT(),
existing_nullable=True)
def downgrade() -> None:
"""Revert LONGTEXT columns back to TEXT."""
# Revert all report columns from LONGTEXT back to TEXT
op.alter_column('analyses', 'market_report',
existing_type=LONGTEXT(),
type_=sa.TEXT(),
existing_nullable=True)
op.alter_column('analyses', 'sentiment_report',
existing_type=LONGTEXT(),
type_=sa.TEXT(),
existing_nullable=True)
op.alter_column('analyses', 'news_report',
existing_type=LONGTEXT(),
type_=sa.TEXT(),
existing_nullable=True)
op.alter_column('analyses', 'fundamentals_report',
existing_type=LONGTEXT(),
type_=sa.TEXT(),
existing_nullable=True)
op.alter_column('analyses', 'trader_investment_plan',
existing_type=LONGTEXT(),
type_=sa.TEXT(),
existing_nullable=True)
op.alter_column('analyses', 'final_trade_decision',
existing_type=LONGTEXT(),
type_=sa.TEXT(),
existing_nullable=True)
op.alter_column('analyses', 'final_report',
existing_type=LONGTEXT(),
type_=sa.TEXT(),
existing_nullable=True)
op.alter_column('analyses', 'error_message',
existing_type=LONGTEXT(),
type_=sa.TEXT(),
existing_nullable=True)