123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- """Database built into Pynecone."""
- import sqlmodel
- from pynecone import utils
- from pynecone.base import Base
- def get_engine():
- """Get the database engine.
- Returns:
- The database engine.
- """
- url = utils.get_config().db_url
- return sqlmodel.create_engine(url, echo=False)
- class Model(Base, sqlmodel.SQLModel):
- """Base class to define a table in the database."""
- # The primary key for the table.
- id: int = sqlmodel.Field(primary_key=True)
- @staticmethod
- def create_all():
- """Create all the tables."""
- engine = get_engine()
- sqlmodel.SQLModel.metadata.create_all(engine)
- @classmethod
- @property
- def select(cls):
- """Select rows from the table.
- Returns:
- The select statement.
- """
- return sqlmodel.select(cls)
- def session(url=None):
- """Get a session to interact with the database.
- Args:
- url: The database url.
- Returns:
- A database session.
- """
- if url is not None:
- return sqlmodel.Session(sqlmodel.create_engine(url))
- engine = get_engine()
- return sqlmodel.Session(engine)
|