问题:因为是项目从mysql更换到达梦dm8数据库,同时数据库字段也需要更换为国标要求,使用column_property会有警告,改用synonym,但在Mixin类中会报错:sqlalchemy.exc.InvalidRequestError: Mapper properties (i.e. deferred,column_property(), relationship(), etc.) must be declared as @declared_attr callables on declarative mixin classes. For dataclass field() objects, use a lambda
解决:根据提示使用@declared_attr进行装饰
方法:
from sqlalchemy.ext.declarative import declarative_base, declared_attr
from sqlalchemy.orm import synonym
from db.session import engine
from sqlalchemy import (
Column, Integer, String, DateTime)
Base = declarative_base()
Base.metadata.create_all(bind=engine)