domovoy_bot/database/migrate_add_schedules.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

54 lines
1.9 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.4: создать таблицу schedules для расписания отключений
"""
import sqlite3
import asyncio
DB_PATH = 'database/domovoy.db'
async def migrate():
"""Создать таблицу schedules"""
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
# Проверяем, есть ли уже таблица schedules
cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='schedules'")
existing = cursor.fetchone()
if existing:
print(" Таблица schedules уже существует")
else:
print(" Создаём таблицу schedules...")
cursor.execute("""
CREATE TABLE schedules (
schedule_id INTEGER PRIMARY KEY AUTOINCREMENT,
schedule_type TEXT NOT NULL,
title TEXT NOT NULL,
description TEXT,
start_time TIMESTAMP NOT NULL,
end_time TIMESTAMP NOT NULL,
created_by BIGINT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
reminder_sent BOOLEAN DEFAULT 0,
is_active BOOLEAN DEFAULT 1,
FOREIGN KEY (created_by) REFERENCES users(user_id)
)
""")
# Создаём индексы
cursor.execute("CREATE INDEX ix_schedules_type ON schedules(schedule_type)")
cursor.execute("CREATE INDEX ix_schedules_time ON schedules(start_time, end_time)")
cursor.execute("CREATE INDEX ix_schedules_active ON schedules(is_active)")
print("✅ Таблица schedules создана")
print("✅ Индексы созданы")
conn.commit()
conn.close()
print("✅ Миграция v1.4 завершена!")
if __name__ == '__main__':
asyncio.run(migrate())