""" Миграция v1.1: создать таблицу polls для опросов """ import sqlite3 import asyncio DB_PATH = 'database/domovoy.db' async def migrate(): """Создать таблицу polls""" conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() # Проверяем, есть ли уже таблица polls cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='polls'") existing = cursor.fetchone() if existing: print("ℹ️ Таблица polls уже существует") else: print("➕ Создаём таблицу polls...") cursor.execute(""" CREATE TABLE polls ( poll_id INTEGER PRIMARY KEY AUTOINCREMENT, message_id BIGINT NOT NULL, chat_id BIGINT NOT NULL, question TEXT NOT NULL, options TEXT NOT NULL, votes TEXT, created_by BIGINT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, is_active BOOLEAN DEFAULT 1, closed_at TIMESTAMP, FOREIGN KEY (created_by) REFERENCES users(user_id) ) """) # Создаём индексы cursor.execute("CREATE INDEX ix_polls_chat_active ON polls(chat_id, is_active)") cursor.execute("CREATE INDEX ix_polls_created_at ON polls(created_at)") print("✅ Таблица polls создана") print("✅ Индексы созданы") conn.commit() conn.close() print("✅ Миграция v1.1 завершена!") if __name__ == '__main__': asyncio.run(migrate())