project-tdm / database.py
hy
Fix server code and sync with remote
7134b06
raw
history blame contribute delete
918 Bytes
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()