diff --git a/db/database.py b/db/database.py index 04f36cc..1e5dcbc 100644 --- a/db/database.py +++ b/db/database.py @@ -1,24 +1,34 @@ import logging import os -import mysql.connector +import mariadb from dotenv import load_dotenv -logs = logging.getLogger('Racu.Core') +_logs = logging.getLogger('Racu.Core') load_dotenv('.env') -cnxpool = mysql.connector.pooling.MySQLConnectionPool( - pool_name='core-pool', - pool_size=25, - host='db', - user=os.getenv("MARIADB_USER"), - password=os.getenv("MARIADB_PASSWORD"), - database='racudb' -) +def create_connection_pool(name: str, size: int) -> mariadb.ConnectionPool: + pool = mariadb.ConnectionPool( + host="db", + port=3306, + database="racudb", + user=os.getenv("MARIADB_USER"), + password=os.getenv("MARIADB_PASSWORD"), + pool_name=name, + pool_size=size + ) + + return pool + +try: + _cnxpool = create_connection_pool("core-pool", 25) +except mariadb.Error as e: + _logs.critical(f"[CRITICAL] Couldn't create MariaDB connection pool: {e}") + raise e def execute_query(query, values=None): - conn = cnxpool.get_connection() + conn = _cnxpool.get_connection() cursor = conn.cursor() if values: @@ -28,16 +38,13 @@ def execute_query(query, values=None): conn.commit() conn.close() - logs.debug(f"database.execute_query: 'query': {query}, 'values': {values}") return cursor def select_query(query, values=None): - conn = cnxpool.get_connection() + conn = _cnxpool.get_connection() cursor = conn.cursor() - logs.debug(f"database.select_query: 'query': {query}, 'values': {values}") - if values: cursor.execute(query, values) output = cursor.fetchall() @@ -50,11 +57,9 @@ def select_query(query, values=None): def select_query_one(query, values=None): - conn = cnxpool.get_connection() + conn = _cnxpool.get_connection() cursor = conn.cursor() - logs.debug(f"database.select_query_one: 'query': {query}, 'values': {values}") - if values: cursor.execute(query, values) output = cursor.fetchone() diff --git a/requirements.txt b/requirements.txt index 44caffd..5c2b133 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,5 +3,5 @@ python-dotenv==1.0.1 setuptools==69.2.0 pytz==2024.1 dropbox==11.36.2 -mysql-connector-python==8.3.0 +mariadb==1.1.10 psutil==5.9.8 \ No newline at end of file