File size: 1,083 Bytes
d2100e7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
import os
from dotenv import load_dotenv
# .env νμΌ λ‘λ (μμ κ²½μ°)
load_dotenv()
# λ°μ΄ν°λ² μ΄μ€ μ°κ²° URL
# 보μμ μν΄ μ€μ νκ²½μμλ .env νμΌμ΄λ νκ²½ λ³μμ DATABASE_URLμ μ μ₯νλ κ²μ΄ μ’μ΅λλ€.
# μ¬κΈ°μλ νλμ½λ©λ κ°μ κΈ°λ³Έκ°μΌλ‘ μ¬μ©ν©λλ€.
SQLALCHEMY_DATABASE_URL = os.getenv("DATABASE_URL")
# SQLAlchemy μμ§ μμ±
# Neon DBμ κ°μ ν΄λΌμ°λ DBλ μ°κ²°μ΄ λκΈΈ μ μμΌλ―λ‘ pool_pre_ping=True μ΅μ
μ μΆκ°νμ¬
# μ°κ²°μ νμΈν ν μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
engine = create_engine(
SQLALCHEMY_DATABASE_URL,
pool_pre_ping=True
)
# μΈμ
ν©ν 리 μμ±
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# Base ν΄λμ€ μμ±
Base = declarative_base()
# DB μΈμ
μμ‘΄μ± μ£Όμ
μ μν ν¨μ (FastAPI λΌμ°ν°μμ μ¬μ©)
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
|