add migrations and switch to sqlalchemy

This commit is contained in:
CEF Server 2024-05-15 00:01:58 +00:00
parent 9c41144985
commit 9148e2068f
12 changed files with 358 additions and 63 deletions

View file

@ -1,52 +1,14 @@
import pymysql
import config
from typing import Tuple
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from .sql_generated import *
import configparser
pymysql.install_as_MySQLdb()
alembic = configparser.ConfigParser()
alembic.read("alembic.ini")
import MySQLdb as maraidb
engine = create_engine(
alembic.get("alembic", "sqlalchemy.url")
)
DB: pymysql = maraidb.connect(user=config.MARIADB_USER, password=config.MARIADB_PASSWORD, db=config.MARIADB_DB, autocommit=True)
DB.autocommit(True)
SessionMaker = sessionmaker(autocommit=False, autoflush=False, bind=engine)
def reconnect(f):
def wrap(*args, **kwargs):
DB.ping()
return f(*args, **kwargs)
return wrap
@reconnect
def SqlExecute(query, *args):
cursor = DB.cursor(pymysql.cursors.DictCursor)
cursor.execute(query, args)
cursor.close()
return cursor.lastrowid
@reconnect
def SqlExecuteFetchOne(query, *args):
cursor = DB.cursor(pymysql.cursors.DictCursor)
cursor.execute(query, args)
row = cursor.fetchone()
cursor.close()
return row
@reconnect
def MultipleSqlExecuteFetchOne(*queries: Tuple[str, tuple]):
cursor = DB.cursor(pymysql.cursors.DictCursor)
ret = []
for query, args in queries:
cursor.execute(query, args)
ret.append(cursor.fetchone())
cursor.close()
return ret
@reconnect
def SqlExecuteFetchAll(query, *args):
cursor = DB.cursor(pymysql.cursors.DictCursor)
cursor.execute(query, args)
rows = cursor.fetchall()
cursor.close()
return rows
CACHE = {}