Python SQLAlchemy经典映射器“;无法为映射表汇编任何主键列;尽管存在主键?

Python SQLAlchemy经典映射器“;无法为映射表汇编任何主键列;尽管存在主键?,python,mysql,sqlalchemy,alembic,Python,Mysql,Sqlalchemy,Alembic,我正在使用Alembic和SQLAlchemy进行一个项目,但是在数据库中创建一个简单的条目作为测试时遇到了问题。我得到以下错误: sqlalchemy.exc.ArgumentError: Mapper Mapper|Sale|sales_cache could not assemble any primary key columns for mapped table 'sales_cache' 我已经在下面的两个地方建立了主键(account_id),你知道为什么SQLAlchemy不能识

我正在使用Alembic和SQLAlchemy进行一个项目,但是在数据库中创建一个简单的条目作为测试时遇到了问题。我得到以下错误:

sqlalchemy.exc.ArgumentError: Mapper Mapper|Sale|sales_cache could not assemble any primary key columns for mapped table 'sales_cache'
我已经在下面的两个地方建立了主键(account_id),你知道为什么SQLAlchemy不能识别它,或者如何修复它吗?我读过的其他答案都处理了多个/无主键的异常情况,并相应地解决了这些问题,但这是一个非常普通的模型,一直在失败

我已经阅读了其他答案,其中大部分涉及声明式系统:

class Sale(Base):
    __tablename__ = 'sales_cache'
但是我需要使用经典的映射系统;下面是我分别映射的类和模式:

class Sale(object):

    def __init__(self, notification):
        self._sale_id = self._notification.object_id
        self._account_id = self._notification.account_id

### schema.py file ###

from sqlalchemy.schema import MetaData, Table, Column
from sqlalchemy.types import (Unicode, Integer)

from database import metadata

metadata = MetaData()

sales_cache = Table('sales_cache', metadata,
    Column('account_id', Integer, primary_key=True, autoincrement=False),
    Column('sale_id', Integer, nullable=False)
)
这是我的alembic修订版中的相关行:

sa.Column('account_id', sa.Integer(), primary_key=True, autoincrement=False),
我认为它可能会失败,因为我正在设置
self.\u sale\u id
self.\u account\u id
而不是
self.sale\u id
self.account\u id
(不带下划线),但当我尝试这种方式时,一切都没有改变


提前感谢

可能会有所帮助:此问题不会指定表的映射方式,也不会指定哪一行引发该错误,添加简单的
映射器(Sale,sales\u cache)
不会显示任何问题,除非从表定义中删除
primary\u key=True