mirror of
https://github.com/rommapp/romm.git
synced 2026-02-18 00:27:41 +01:00
37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
import logging
|
|
import time
|
|
|
|
from config import DEV_SQL_ECHO
|
|
from config.config_manager import ConfigManager
|
|
from sqlalchemy import create_engine, event
|
|
from sqlalchemy.orm import sessionmaker
|
|
|
|
sync_engine = create_engine(
|
|
ConfigManager.get_db_engine(), pool_pre_ping=True, echo=False
|
|
)
|
|
sync_session = sessionmaker(bind=sync_engine, expire_on_commit=False)
|
|
|
|
# Disable SQLAlchemy logging as echo will print the queries
|
|
logging.getLogger("sqlalchemy.engine.Engine").handlers = [logging.NullHandler()]
|
|
|
|
|
|
if DEV_SQL_ECHO:
|
|
|
|
@event.listens_for(sync_engine, "before_cursor_execute")
|
|
def before_cursor_execute(
|
|
conn, cursor, statement, parameters, context, executemany
|
|
):
|
|
context._query_start_time = time.time()
|
|
print("--------START--------")
|
|
print(f"SQL: {statement}")
|
|
print(f"Parameters: {parameters}")
|
|
|
|
@event.listens_for(sync_engine, "after_cursor_execute")
|
|
def after_cursor_execute(conn, cursor, statement, parameters, context, executemany):
|
|
total_time = time.time() - context._query_start_time
|
|
print(f"Execution time: {total_time:.4f} seconds")
|
|
print("--------END--------")
|
|
|
|
|
|
class DBBaseHandler: ...
|