106 lines
3.6 KiB
Python
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) |