File tree Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Original file line number Diff line number Diff line change 3030from sqlalchemy .engine import create_engine
3131from sqlalchemy .engine import Engine
3232from sqlalchemy .ext .mutable import MutableDict
33+ from sqlalchemy .exc import ArgumentError
3334from sqlalchemy .inspection import inspect
3435from sqlalchemy .orm import DeclarativeBase
3536from sqlalchemy .orm import Mapped
@@ -189,13 +190,20 @@ def __init__(self, db_url: str):
189190 # 2. Create all tables based on schema
190191 # 3. Initialize all properies
191192
192- supported_dialects = ["postgresql" , "mysql" , "sqlite" ]
193- dialect = db_url .split ("://" )[0 ]
194-
195- if dialect in supported_dialects :
193+ try :
196194 db_engine = create_engine (db_url )
197- else :
198- raise ValueError (f"Unsupported database URL: { db_url } " )
195+ except Exception as e :
196+ if isinstance (e , ArgumentError ):
197+ raise ValueError (
198+ f"Invalid database URL format or argument '{ db_url } '."
199+ ) from e
200+ if isinstance (e , ImportError ):
201+ raise ValueError (
202+ f"Database related module not found for URL '{ db_url } '."
203+ ) from e
204+ raise ValueError (
205+ f"Failed to create database engine for URL '{ db_url } '"
206+ ) from e
199207
200208 # Get the local timezone
201209 local_timezone = get_localzone ()
You can’t perform that action at this time.
0 commit comments