database.py 549 B

1234567891011121314151617181920212223
  1. from sqlalchemy import create_engine
  2. from sqlalchemy.orm import sessionmaker, declarative_base
  3. from app.core.config import settings
  4. # SQLAlchemy 2.0 style
  5. engine = create_engine(
  6. settings.DATABASE_URI,
  7. pool_pre_ping=True,
  8. echo=False,
  9. pool_size=20, # 增加连接池大小
  10. max_overflow=40 # 允许溢出更多连接
  11. )
  12. SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
  13. Base = declarative_base()
  14. def get_db():
  15. db = SessionLocal()
  16. try:
  17. yield db
  18. finally:
  19. db.close()