Files
tk-factory-services/tkeg/api/app/database.py
2026-03-16 15:41:58 +09:00

36 lines
883 B
Python

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import os
# 데이터베이스 URL (환경변수에서 읽거나 기본값 사용)
DATABASE_URL = os.getenv(
"DATABASE_URL",
"postgresql://tkbom_user:tkbom_password@tkeg-postgres:5432/tk_bom"
)
# SQLAlchemy 엔진 생성 (UTF-8 인코딩 설정)
engine = create_engine(
DATABASE_URL,
connect_args={
"client_encoding": "utf8",
"options": "-c client_encoding=utf8 -c timezone=UTC"
},
pool_pre_ping=True,
echo=False
)
# 세션 팩토리 생성
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# Base 클래스 생성
Base = declarative_base()
# 데이터베이스 의존성 함수
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()