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..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 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)