- Исправлено 'плавающее' меню (дублирование кнопок при навигации)
- Создан base.html - единый базовый шаблон для всех страниц
- Добавлена кнопка '📅 Запланированные посты' во все 11 страниц
- Sticky sidebar с улучшенным дизайном
- Все страницы теперь имеют одинаковое меню (11 кнопок)
- Улучшенная подсветка активного пункта (border-left)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Миграция: Добавление таблицы scheduled_posts
|
|
"""
|
|
import asyncio
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
BASE_DIR = Path(__file__).resolve().parent.parent.parent
|
|
sys.path.insert(0, str(BASE_DIR))
|
|
|
|
from database.db import engine
|
|
from database.models import ScheduledPost
|
|
from sqlalchemy import inspect
|
|
|
|
async def create_scheduled_posts_table():
|
|
"""Создание таблицы scheduled_posts"""
|
|
async with engine.begin() as conn:
|
|
# Проверяем существует ли таблица
|
|
def check_table(connection):
|
|
inspector = inspect(connection)
|
|
return inspector.has_table('scheduled_posts')
|
|
|
|
table_exists = await conn.run_sync(check_table)
|
|
|
|
if table_exists:
|
|
print("✅ Таблица scheduled_posts уже существует")
|
|
return
|
|
|
|
# Создаём таблицу
|
|
await conn.run_sync(
|
|
lambda sync_conn: ScheduledPost.__table__.create(sync_conn, checkfirst=True)
|
|
)
|
|
print("✅ Таблица scheduled_posts создана")
|
|
|
|
if __name__ == '__main__':
|
|
asyncio.run(create_scheduled_posts_table())
|