30 lines
892 B
Python
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')
|