Edit on GitHub

src.db.ddl

Определение триггеров и функций в БД

 1"""Определение триггеров и функций в БД"""
 2
 3import os
 4
 5from sqlalchemy import DDL, event
 6
 7from core.config import Base
 8from core.path import PATH
 9
10sql_path = os.path.join(PATH, "src", "db", "sql")
11"""str: Путь к директории, содержащей SQL-скрипты."""
12
13with open(os.path.join(sql_path, "_update_user_status.sql")) as sql:
14    update_user_status = DDL(sql.read())
15    """DDL: SQL-операция для обновления статуса пользователя."""
16
17with open(os.path.join(sql_path, "trigger_update_user_status.sql")) as sql:
18    trigger_update_user_status = DDL(sql.read())
19    """DDL: Триггер для обновления статуса пользователя."""
20
21with open(os.path.join(sql_path, "_succesful_pay.sql")) as sql:
22    succesful_pay = DDL(sql.read())
23    """DDL: SQL-операция для обработки успешного платежа."""
24
25with open(os.path.join(sql_path, "trigger_succesful_pay.sql")) as sql:
26    trigger_succesful_pay = DDL(sql.read())
27    """DDL: Триггер для обработки успешного платежа."""
28
29with open(os.path.join(sql_path, "_unfreeze_configs.sql")) as sql:
30    unfreeze_configs = DDL(sql.read())
31    """DDL: SQL-операция для размораживания конфигураций."""
32
33with open(os.path.join(sql_path, "_delete_old_transactions.sql")) as sql:
34    delete_old_transactions = DDL(sql.read())
35    """DDL: SQL-операция для удаления старых транзакций."""
36
37with open(os.path.join(sql_path, "trigger_old_transactions.sql")) as sql:
38    trigger_old_transactions = DDL(sql.read())
39    """DDL: Триггер для удаления старых транзакций."""
40
41# Подписка на события создания метаданных
42event.listen(Base.metadata, "after_create", update_user_status)
43"""None: Подписка на событие после создания метаданных для обновления статуса пользователя."""
44
45event.listen(Base.metadata, "after_create", trigger_update_user_status)
46"""None: Подписка на событие после создания метаданных для триггера обновления статуса пользователя."""
47
48event.listen(Base.metadata, "after_create", succesful_pay)
49"""None: Подписка на событие после создания метаданных для обработки успешного платежа."""
50
51event.listen(Base.metadata, "after_create", trigger_succesful_pay)
52"""None: Подписка на событие после создания метаданных для триггера успешного платежа."""
53
54event.listen(Base.metadata, "after_create", unfreeze_configs)
55"""None: Подписка на событие после создания метаданных для размораживания конфигураций."""
56
57event.listen(Base.metadata, "after_create", delete_old_transactions)
58"""None: Подписка на событие после создания метаданных для удаления старых транзакций."""
59
60event.listen(Base.metadata, "after_create", trigger_old_transactions)
61"""None: Подписка на событие после создания метаданных для триггера удаления старых транзакций."""
sql_path = '/home/bot/vpn_dan_bot/src/db/sql'

str: Путь к директории, содержащей SQL-скрипты.