from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker import os POSTGRES_USER = os.environ.get("POSTGRES_USER", "user") POSTGRES_PASSWORD = os.environ.get("POSTGRES_PASSWORD", "password") POSTGRES_DB = os.environ.get("POSTGRES_DB", "db") POSTGRES_HOST = os.environ.get("POSTGRES_HOST", "postgres") SQLALCHEMY_DATABASE_URL = f"postgresql+asyncpg://{POSTGRES_USER}:{POSTGRES_PASSWORD}@{POSTGRES_HOST}/{POSTGRES_DB}" engine = create_async_engine(SQLALCHEMY_DATABASE_URL) async_session = sessionmaker( autocommit=False, class_=AsyncSession, autoflush=False, bind=engine ) Base = declarative_base()