import os from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker # 1. (가장 중요) DB 접속 주소 수정 SQLALCHEMY_DATABASE_URL = os.environ.get("SQLALCHEMY_DATABASE_URL") # 2. DB 연결 엔진 생성 engine = create_engine( SQLALCHEMY_DATABASE_URL, pool_pre_ping=True, # <--- (1) 연결하기 전에 Ping pool_recycle=300, # <--- (2) 5분(300초)마다 연결을 새것으로 교체 (오래된 연결 끊기 방지) pool_size=5, # <--- (3) 동시에 유지할 연결 개수 max_overflow=10 # <--- (4) 갑자기 몰릴 때 추가로 허용할 연결 개수 ) # 3. DB와 통신할 세션(Session) 생성 SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) # 4. 모델(스키마)들이 상속받을 기본 'Base' 클래스 생성 Base = declarative_base()