58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
"""init
|
|
|
|
Revision ID: eeb6744b9452
|
|
Revises:
|
|
Create Date: 2025-09-05 14:55:12.005564
|
|
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision: str = 'eeb6744b9452'
|
|
down_revision: Union[str, Sequence[str], None] = None
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
"""Создание всех таблиц согласно моделям."""
|
|
op.create_table(
|
|
'admins',
|
|
sa.Column('id', sa.Integer(), primary_key=True),
|
|
sa.Column('tg_id', sa.Integer(), unique=True, nullable=False),
|
|
)
|
|
op.create_table(
|
|
'channels',
|
|
sa.Column('id', sa.Integer(), primary_key=True),
|
|
sa.Column('name', sa.String, nullable=True),
|
|
sa.Column('link', sa.String, nullable=True),
|
|
sa.Column('admin_id', sa.Integer(), sa.ForeignKey('admins.id'), nullable=True),
|
|
)
|
|
op.create_table(
|
|
'groups',
|
|
sa.Column('id', sa.Integer(), primary_key=True),
|
|
sa.Column('name', sa.String, nullable=False),
|
|
sa.Column('link', sa.String, nullable=False),
|
|
sa.Column('admin_id', sa.Integer(), sa.ForeignKey('admins.id'), nullable=True),
|
|
)
|
|
op.create_table(
|
|
'buttons',
|
|
sa.Column('id', sa.Integer(), primary_key=True),
|
|
sa.Column('name', sa.String, nullable=False),
|
|
sa.Column('url', sa.String, nullable=False),
|
|
sa.Column('channel_id', sa.Integer(), sa.ForeignKey('channels.id'), nullable=True),
|
|
sa.Column('group_id', sa.Integer(), sa.ForeignKey('groups.id'), nullable=True),
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
"""Удаление всех таблиц."""
|
|
op.drop_table('buttons')
|
|
op.drop_table('groups')
|
|
op.drop_table('channels')
|
|
op.drop_table('admins')
|