40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
"""channel table
|
||
|
||
Revision ID: 7506a3320699
|
||
Revises: 69ef23ef1ed1
|
||
Create Date: 2025-09-05 14:12:37.430983
|
||
|
||
"""
|
||
from typing import Sequence, Union
|
||
|
||
from alembic import op
|
||
import sqlalchemy as sa
|
||
from sqlalchemy.sql import table, column
|
||
|
||
|
||
# revision identifiers, used by Alembic.
|
||
revision: str = '7506a3320699'
|
||
down_revision: Union[str, Sequence[str], None] = '69ef23ef1ed1'
|
||
branch_labels: Union[str, Sequence[str], None] = None
|
||
depends_on: Union[str, Sequence[str], None] = None
|
||
|
||
|
||
def upgrade() -> None:
|
||
"""Upgrade schema."""
|
||
# Для SQLite: добавляем столбцы через ALTER TABLE
|
||
conn = op.get_bind()
|
||
# Добавить столбец link, если его нет
|
||
result = conn.execute(sa.text("PRAGMA table_info(channels)")).fetchall()
|
||
columns = [row[1] for row in result]
|
||
if 'link' not in columns:
|
||
conn.execute(sa.text("ALTER TABLE channels ADD COLUMN link VARCHAR(255)"))
|
||
# Добавить столбец admin_id, если его нет
|
||
if 'admin_id' not in columns:
|
||
conn.execute(sa.text("ALTER TABLE channels ADD COLUMN admin_id INTEGER"))
|
||
|
||
|
||
def downgrade() -> None:
|
||
"""Downgrade schema."""
|
||
# SQLite не поддерживает удаление столбцов, поэтому просто удаляем таблицу
|
||
op.drop_table('channels')
|