1
Fork 0
mirror of https://github.com/wlinator/luminara.git synced 2024-10-03 02:43:12 +00:00
Lumi/db/database.py

74 lines
1.5 KiB
Python
Raw Normal View History

2024-06-21 19:58:42 +00:00
from loguru import logger
2024-03-29 17:17:51 +00:00
import os
import mariadb
2023-06-19 14:20:17 +00:00
2023-07-02 12:20:16 +00:00
def create_connection_pool(name: str, size: int) -> mariadb.ConnectionPool:
pool = mariadb.ConnectionPool(
host="db",
port=3306,
database=os.environ.get("MARIADB_DATABASE"),
user=os.environ.get("MARIADB_USER"),
password=os.environ.get("MARIADB_PASSWORD"),
pool_name=name,
pool_size=size
)
return pool
try:
_cnxpool = create_connection_pool("core-pool", 25)
except mariadb.Error as e:
2024-06-21 19:58:42 +00:00
logger.critical(f"Couldn't create the MariaDB connection pool: {e}")
raise e
2023-06-19 14:20:17 +00:00
def execute_query(query, values=None):
conn = _cnxpool.get_connection()
2023-06-19 14:20:17 +00:00
cursor = conn.cursor()
2023-06-21 13:43:11 +00:00
if values:
cursor.execute(query, values)
else:
cursor.execute(query)
2023-06-19 14:20:17 +00:00
2023-06-21 13:43:11 +00:00
conn.commit()
2023-10-23 12:49:46 +00:00
conn.close()
2023-06-19 14:20:17 +00:00
return cursor
def select_query(query, values=None):
conn = _cnxpool.get_connection()
2023-06-19 14:20:17 +00:00
cursor = conn.cursor()
2023-06-21 13:43:11 +00:00
if values:
2023-10-23 12:49:46 +00:00
cursor.execute(query, values)
output = cursor.fetchall()
2023-06-21 13:43:11 +00:00
else:
2023-10-23 12:49:46 +00:00
cursor.execute(query)
output = cursor.fetchall()
conn.close()
return output
2023-06-19 14:20:17 +00:00
def select_query_one(query, values=None):
conn = _cnxpool.get_connection()
2023-06-19 14:20:17 +00:00
cursor = conn.cursor()
2023-06-21 13:43:11 +00:00
if values:
2023-10-23 12:49:46 +00:00
cursor.execute(query, values)
output = cursor.fetchone()
2023-06-21 13:43:11 +00:00
else:
2023-10-23 12:49:46 +00:00
cursor.execute(query)
output = cursor.fetchone()
conn.close()
2023-06-19 14:20:17 +00:00
2023-06-21 13:43:11 +00:00
if output:
return output[0]
2023-06-19 14:20:17 +00:00
2023-06-21 13:43:11 +00:00
return None