dashboard/backend/database.py

30 lines
670 B
Python
Raw Permalink Normal View History

2025-06-09 14:59:40 +08:00
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import os
# 确保数据目录存在
DB_DIR = "data"
os.makedirs(DB_DIR, exist_ok=True)
# 数据库URL
SQLALCHEMY_DATABASE_URL = f"sqlite:///{DB_DIR}/app.db"
# 创建引擎
engine = create_engine(
SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False}
)
# 创建会话
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# 声明基类
Base = declarative_base()
# 获取数据库会话依赖项
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()