24 lines
872 B
Python
24 lines
872 B
Python
"""
|
|
Driver factory — returns an instantiated driver for the given DB type.
|
|
"""
|
|
from app.drivers.base import BaseDriver
|
|
|
|
|
|
def get_driver(db_type: str, config: dict) -> BaseDriver:
|
|
"""Instantiate and return the correct driver for db_type."""
|
|
db_type = db_type.lower()
|
|
if db_type == "mysql":
|
|
from app.drivers.mysql_driver import MySQLDriver
|
|
return MySQLDriver(config)
|
|
elif db_type in ("postgresql", "postgres"):
|
|
from app.drivers.postgres_driver import PostgreSQLDriver
|
|
return PostgreSQLDriver(config)
|
|
elif db_type == "sqlite":
|
|
from app.drivers.sqlite_driver import SQLiteDriver
|
|
return SQLiteDriver(config)
|
|
elif db_type == "mssql":
|
|
from app.drivers.mssql_driver import MSSQLDriver
|
|
return MSSQLDriver(config)
|
|
else:
|
|
raise ValueError(f"Unsupported database type: {db_type!r}")
|