fix: 修复SQLAlchemy 2.0+兼容性问题

- 使用sqlalchemy.orm.DeclarativeBase替代已弃用的ext.declarative
- 更新Record类继承新的BaseModel基类
- 更新metadata.create_all调用
This commit is contained in:
congsh
2026-02-12 11:16:55 +08:00
parent 5ac2bd98d4
commit 54eeb6f522

View File

@@ -7,11 +7,12 @@
from datetime import datetime from datetime import datetime
from typing import Optional from typing import Optional
from sqlalchemy import Column, Integer, String, Text, DateTime, JSON from sqlalchemy import Column, Integer, String, Text, DateTime, JSON
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import sessionmaker, DeclarativeBase
Base = declarative_base() # 使用新版SQLAlchemy的DeclarativeBase
class BaseModel(DeclarativeBase):
pass
class RecordCategory: class RecordCategory:
@@ -34,7 +35,7 @@ class RecordCategory:
return category in cls.all() return category in cls.all()
class Record(Base): class Record(BaseModel):
"""记录模型 - 存储图片识别和AI处理结果""" """记录模型 - 存储图片识别和AI处理结果"""
__tablename__ = 'records' __tablename__ = 'records'
@@ -139,7 +140,7 @@ class DatabaseManager:
) )
# 创建所有表 # 创建所有表
Base.metadata.create_all(bind=self.engine) BaseModel.metadata.create_all(bind=self.engine)
def get_session(self): def get_session(self):
""" """