From 443855e05a18de9f0d71a4d60e16ec150bb05060 Mon Sep 17 00:00:00 2001 From: sauravniraula Date: Wed, 30 Jul 2025 12:23:04 +0545 Subject: [PATCH] fix(fastapi): adds async driver in database url based on type --- servers/fastapi/services/database.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/servers/fastapi/services/database.py b/servers/fastapi/services/database.py index 4cdbccb7..6b458f73 100644 --- a/servers/fastapi/services/database.py +++ b/servers/fastapi/services/database.py @@ -11,9 +11,19 @@ from sqlmodel import SQLModel from utils.get_env import get_app_data_directory_env, get_database_url_env -database_url = get_database_url_env() or "sqlite+aiosqlite:///" + os.path.join( +raw_database_url = get_database_url_env() or "sqlite:///" + os.path.join( get_app_data_directory_env() or "/tmp/presenton", "fastapi.db" ) + +if raw_database_url.startswith("sqlite://"): + database_url = raw_database_url.replace("sqlite://", "sqlite+aiosqlite://", 1) +elif raw_database_url.startswith("postgresql://"): + database_url = raw_database_url.replace("postgresql://", "postgresql+asyncpg://", 1) +elif raw_database_url.startswith("mysql://"): + database_url = raw_database_url.replace("mysql://", "mysql+aiomysql://", 1) +else: + database_url = raw_database_url + connect_args = {} if "sqlite" in database_url: connect_args["check_same_thread"] = False