From c32d29964a829fb028026af20c0da73733b4f0f4 Mon Sep 17 00:00:00 2001 From: truckerDrew Date: Fri, 3 Sep 2021 15:06:00 -0400 Subject: [PATCH 1/2] use sqlalchemy async engine --- sqlmodel/__init__.py | 5 ++++- sqlmodel/engine/create.py | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/sqlmodel/__init__.py b/sqlmodel/__init__.py index bbe86ee2ae..88fd4258f4 100644 --- a/sqlmodel/__init__.py +++ b/sqlmodel/__init__.py @@ -127,8 +127,11 @@ from sqlalchemy.types import VARCHAR as VARCHAR # Extensions and modifications of SQLAlchemy in SQLModel -from .engine.create import create_engine as create_engine +#from .engine.create import create_engine as create_engine +# Edits for Async +from .engine.create import create_async_engine as create_async_engine from .orm.session import Session as Session +from .ext.asyncio.session import AsyncSession from .sql.expression import select as select from .sql.expression import col as col from .sql.sqltypes import AutoString as AutoString diff --git a/sqlmodel/engine/create.py b/sqlmodel/engine/create.py index 97481259e2..6a4fc13ca2 100644 --- a/sqlmodel/engine/create.py +++ b/sqlmodel/engine/create.py @@ -2,7 +2,7 @@ import sqlite3 from typing import Any, Callable, Dict, List, Optional, Type, Union -from sqlalchemy import create_engine as _create_engine +from sqlalchemy.ext.asyncio import create_async_engine as create_async_engine from sqlalchemy.engine.url import URL from sqlalchemy.future import Engine as _FutureEngine from sqlalchemy.pool import Pool @@ -42,7 +42,7 @@ class _SQLiteConnectArgs(TypedDict, total=False): # Also show the default values used for each parameter, but don't set them unless # explicitly passed as arguments by the user to prevent errors. E.g. SQLite doesn't # support pool connection arguments. -def create_engine( +def create_async_engine( url: Union[str, URL], *, connect_args: _ConnectArgs = Default({}), # type: ignore @@ -136,4 +136,4 @@ def create_engine( if not isinstance(query_cache_size, _DefaultPlaceholder): current_kwargs["query_cache_size"] = query_cache_size current_kwargs.update(kwargs) - return _create_engine(url, **current_kwargs) + return _create_async_engine(url, **current_kwargs) From ca4afa57e08ed895ce0823ec8c064e7bdd520576 Mon Sep 17 00:00:00 2001 From: truckerDrew Date: Fri, 3 Sep 2021 15:07:12 -0400 Subject: [PATCH 2/2] minor import error --- sqlmodel/engine/create.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sqlmodel/engine/create.py b/sqlmodel/engine/create.py index 6a4fc13ca2..f738a47387 100644 --- a/sqlmodel/engine/create.py +++ b/sqlmodel/engine/create.py @@ -2,7 +2,7 @@ import sqlite3 from typing import Any, Callable, Dict, List, Optional, Type, Union -from sqlalchemy.ext.asyncio import create_async_engine as create_async_engine +from sqlalchemy.ext.asyncio import create_async_engine as _create_async_engine from sqlalchemy.engine.url import URL from sqlalchemy.future import Engine as _FutureEngine from sqlalchemy.pool import Pool