diff --git a/databases/core.py b/databases/core.py index 727802d4..839e58f5 100644 --- a/databases/core.py +++ b/databases/core.py @@ -62,7 +62,7 @@ def __init__( self._force_rollback = force_rollback - backend_str = self.SUPPORTED_BACKENDS[self.url.scheme] + backend_str = self._get_backend() backend_cls = import_from_string(backend_str) assert issubclass(backend_cls, DatabaseBackend) self._backend = backend_cls(self.url, **self.options) @@ -329,6 +329,13 @@ def _build_query( return query + def _get_backend(self) -> Optional[str]: + try: + return self.SUPPORTED_BACKENDS[self.url.scheme] + except KeyError: + return self.SUPPORTED_BACKENDS[self.url.dialect] + + class Transaction: def __init__(