Spaces:
Sleeping
Sleeping
Download common/database/postgres_database.py from NurseCitizenDeveloper/NurseMinute: direct link, hf CLI and curl.
- Browser
- Download file 1.13 kB
-
https://huggingface.co/spaces/NurseCitizenDeveloper/NurseMinute/resolve/main/common/database/postgres_database.py
- Command line
-
hf download hf://spaces/NurseCitizenDeveloper/NurseMinute/common/database/postgres_database.py
-
curl -L -o postgres_database.py https://huggingface.co/spaces/NurseCitizenDeveloper/NurseMinute/resolve/main/common/database/postgres_database.py
1.13 kB
| import logging | |
| from sqlalchemy.ext.asyncio import create_async_engine | |
| from sqlmodel import Session, create_engine | |
| from common.settings import get_settings | |
| logger = logging.getLogger(__name__) | |
| # Only create the settings object once | |
| settings = get_settings() | |
| # Get database connection details from environment variables | |
| DB_USER = settings.POSTGRES_USER | |
| DB_PASSWORD = settings.POSTGRES_PASSWORD | |
| DB_HOST = settings.POSTGRES_HOST | |
| DB_PORT = settings.POSTGRES_PORT | |
| DB_NAME = settings.POSTGRES_DB | |
| # Use psycopg2 for synchronous operations | |
| SYNC_DATABASE_URL = f"postgresql+psycopg2://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}" | |
| # Use asyncpg for asynchronous operations | |
| ASYNC_DATABASE_URL = f"postgresql+asyncpg://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}" | |
| engine = create_engine(SYNC_DATABASE_URL, pool_size=20, max_overflow=30, pool_timeout=60, pool_pre_ping=True) | |
| async_engine = create_async_engine( | |
| ASYNC_DATABASE_URL, pool_size=20, max_overflow=30, pool_timeout=60, pool_pre_ping=True | |
| ) | |
| def SessionLocal() -> Session: # noqa: N802 | |
| return Session(engine) | |