""" Миграция v1.5: создать таблицу ads для доски объявлений """ import sqlite3 import asyncio DB_PATH = 'database/domovoy.db' async def migrate(): """Создать таблицу ads""" conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() # Проверяем, есть ли уже таблица ads cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='ads'") existing = cursor.fetchone() if existing: print("ℹ️ Таблица ads уже существует") else: print("➕ Создаём таблицу ads...") cursor.execute(""" CREATE TABLE ads ( ad_id INTEGER PRIMARY KEY AUTOINCREMENT, user_id BIGINT NOT NULL, category TEXT NOT NULL, title TEXT NOT NULL, description TEXT, price INTEGER, phone TEXT, message_id BIGINT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, expires_at TIMESTAMP, is_active BOOLEAN DEFAULT 1, is_moderated BOOLEAN DEFAULT 0, FOREIGN KEY (user_id) REFERENCES users(user_id) ) """) # Создаём индексы cursor.execute("CREATE INDEX ix_ads_category ON ads(category)") cursor.execute("CREATE INDEX ix_ads_active ON ads(is_active)") cursor.execute("CREATE INDEX ix_ads_created_at ON ads(created_at)") print("✅ Таблица ads создана") print("✅ Индексы созданы") conn.commit() conn.close() print("✅ Миграция v1.5 завершена!") if __name__ == '__main__': asyncio.run(migrate())