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.ext.declarative import declarative_base
| from sqlalchemy.orm import sessionmaker
| from config import settings
|
| # 创建数据库引擎
| engine = create_engine(
| settings.database_url,
| echo=settings.debug,
| pool_pre_ping=True,
| pool_recycle=300
| )
|
| # 创建会话工厂
| SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
|
| # 创建基础模型类
| Base = declarative_base()
|
|
| def get_db():
| """获取数据库会话"""
| db = SessionLocal()
| try:
| yield db
| finally:
| db.close()
|
|
| def create_tables():
| """创建所有表"""
| Base.metadata.create_all(bind=engine)
|
|