KuroCore/kurocore/database.py
2024-03-24 04:05:54 +03:00

30 lines
892 B
Python

import logging
from asyncio import get_event_loop
from peewee_async import PostgresqlDatabase, Manager
from kurocore.logger import BotLogger
class Database:
db: PostgresqlDatabase = PostgresqlDatabase(None)
manager: Manager
def __init__(self, settings):
db_settings = settings.database
driver_name = db_settings.driver
host = db_settings.host
name = db_settings.name
user = db_settings.user
password = db_settings.password
port = db_settings.port
if driver_name.lower() not in ('postgres', 'postgresql', 'psql'):
raise
Database.db.init(name, user=user, password=password, host=host, port=port)
loop = get_event_loop()
Database.manager = Manager(Database.db, loop=loop)
Database.manager.allow_sync = logging.ERROR
BotLogger.log.info('Connected to database')