Pythons SQLAlchemy无法识别主键列和抱怨,为什么?

时间:2011-08-20 05:37:25

标签: python mysql sqlalchemy primary-key

我有这个MySQL表:

CREATE TABLE `affiliations` (
  `affiliation_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(333) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`affiliation_id`),
  UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin

和这个模型:

class Affiliation(Base):
    __tablename__ = 'affiliations'
    __table_args__ = {'autoload : True'}

    def __init__(self,  **kwargs):
        for k, v in kwargs.iteritems():
            setattr(self, k, v)

    def __repr__(self):
        return 'Affiliation({name!r}'.format(name=self.name)

当我发起

session = database.get_session(engine)
aff = session.query(Affiliation).first()
print repr(aff)

SQLAlchemy返回此错误:

sqlalchemy.exc.ArgumentError: Mapper Mapper|Affiliation|affiliations could not assemble any primary key columns for mapped table 'affiliations'

我已经多次将模型重写为数据库,重复检查每个名称,更改了列,但我无法找到SQLAlchemy抱怨的原因。 正如您在表格CREATE STATEMENT中看到的那样,定义了一个主键。为什么SQLAlchemy不能找到它?

我已经等价地定义了其他表,但代码效果很好。

0 个答案:

没有答案