base_model.py 656 B

1234567891011121314151617181920212223242526
  1. import os
  2. from sqlalchemy import create_engine
  3. from sqlalchemy.ext.declarative import declarative_base
  4. from sqlalchemy.orm import sessionmaker, Session
  5. from app.config.config import settings
  6. DATABASE_URL = settings.database_url
  7. engine = create_engine(DATABASE_URL, pool_size=20, max_overflow=50, pool_recycle=3600)
  8. SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
  9. Base = declarative_base()
  10. # 创建所有表(如果有新的模型类,会自动创建相应的表)
  11. def init_db():
  12. Base.metadata.create_all(bind=engine)
  13. def get_db():
  14. db = SessionLocal()
  15. try:
  16. yield db
  17. finally:
  18. db.close()