|
@@ -8,23 +8,26 @@ from pynecone.base import Base
|
|
from pynecone.config import get_config
|
|
from pynecone.config import get_config
|
|
|
|
|
|
|
|
|
|
-def get_engine():
|
|
|
|
|
|
+def get_engine(url: Optional[str] = None):
|
|
"""Get the database engine.
|
|
"""Get the database engine.
|
|
|
|
|
|
|
|
+ Args:
|
|
|
|
+ url: the DB url to use.
|
|
|
|
+
|
|
Returns:
|
|
Returns:
|
|
The database engine.
|
|
The database engine.
|
|
|
|
|
|
Raises:
|
|
Raises:
|
|
ValueError: If the database url is None.
|
|
ValueError: If the database url is None.
|
|
"""
|
|
"""
|
|
- url = get_config().db_url
|
|
|
|
- enable_admin = get_config().enable_admin
|
|
|
|
- if not url:
|
|
|
|
- raise ValueError("No database url in config")
|
|
|
|
|
|
+ conf = get_config()
|
|
|
|
+ url = url or conf.db_url
|
|
|
|
+ if url is None:
|
|
|
|
+ raise ValueError("No database url configured")
|
|
return sqlmodel.create_engine(
|
|
return sqlmodel.create_engine(
|
|
url,
|
|
url,
|
|
echo=False,
|
|
echo=False,
|
|
- connect_args={"check_same_thread": False} if enable_admin else {},
|
|
|
|
|
|
+ connect_args={"check_same_thread": False} if conf.admin_dash else {},
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
@@ -83,7 +86,7 @@ class Model(Base, sqlmodel.SQLModel):
|
|
return sqlmodel.select(cls)
|
|
return sqlmodel.select(cls)
|
|
|
|
|
|
|
|
|
|
-def session(url=None):
|
|
|
|
|
|
+def session(url: Optional[str] = None) -> sqlmodel.Session:
|
|
"""Get a session to interact with the database.
|
|
"""Get a session to interact with the database.
|
|
|
|
|
|
Args:
|
|
Args:
|
|
@@ -92,13 +95,4 @@ def session(url=None):
|
|
Returns:
|
|
Returns:
|
|
A database session.
|
|
A database session.
|
|
"""
|
|
"""
|
|
- enable_admin = get_config().enable_admin
|
|
|
|
- if url is not None:
|
|
|
|
- return sqlmodel.Session(
|
|
|
|
- sqlmodel.create_engine(
|
|
|
|
- url,
|
|
|
|
- connect_args={"check_same_thread": False} if enable_admin else {},
|
|
|
|
- ),
|
|
|
|
- )
|
|
|
|
- engine = get_engine()
|
|
|
|
- return sqlmodel.Session(engine)
|
|
|
|
|
|
+ return sqlmodel.Session(get_engine(url))
|