domovoy_bot/database/migrate_add_ads.py
Admin ba4676b0af v1.0 MVP - Инициализация проекта 🏠
 Регистрация и верификация жильцов
 Рейтинг активности (уровни)
 Детект шпионов (Score 0-100)
 Анти-мат система (3 предупреждения → бан)
 Админ-панель с рассылкой
 Учёт квартир (несколько жильцов)
 Телефоны экстренных служб и мастеров
 Еженедельный экспорт JSON
 Прокси (socks5) для обхода РКН

Бекап: backups/versions/v1.0_mvp_2026-02-26/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 10:54:16 +00:00

56 lines
1.8 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
Миграция 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())