Spaces:
Running
Running
| # app/database.py | |
| import os | |
| import logging | |
| from sqlalchemy import create_engine | |
| from sqlalchemy.orm import sessionmaker, declarative_base | |
| from .config import settings | |
| # 1) Grab the raw DATABASE_URL (e.g. "postgresql://...:5433/promptaid?schema=public") | |
| raw_db_url = settings.DATABASE_URL | |
| logging.getLogger().warning(f"▶️ Raw DATABASE_URL = {raw_db_url!r}") | |
| # 2) Strip off any query string (everything from the first "?" onward) | |
| clean_db_url = raw_db_url.split("?", 1)[0] | |
| logging.getLogger().warning(f"▶️ Using clean URL = {clean_db_url!r}") | |
| # 3) Create the SQLAlchemy engine on that clean URL | |
| engine = create_engine( | |
| clean_db_url, | |
| echo=True, # log all SQL to the console | |
| future=True # recommended for SQLAlchemy 2.0 style | |
| ) | |
| # 4) Configure a session factory | |
| SessionLocal = sessionmaker( | |
| autocommit=False, | |
| autoflush=False, | |
| bind=engine, | |
| future=True | |
| ) | |
| # 5) Base class for all ORM models | |
| Base = declarative_base() | |