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