我有这样的表:
from sqlalchemy import Column, Integer, select
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Blah(Base):
__tablename__ = 'Blah'
container_id = Column(Integer, primary_key=True)
blah_id = Column(Integer, primary_key=True)
gprop = Column(Integer, index=True, nullable=False)
class GProp(Base):
__table__ = select([
Blah.container_id, Blah.gprop
]).group_by(
Blah.container_id, Blah.gprop
).alias()
因为它GProp.__table__.primary_key
拿起了container_id
列,但我找不到使gprop
列成为主键的一部分的方法。这打破了我的查询,SQLAlchemy 只会GProp
为每个容器加载一个。
到目前为止未成功的修复:添加Column
属性是被禁止的,因为它重新定义了现有的列,添加一个PrimaryKeyConstraint
to__table_args__
没有效果,并且猴子补丁__table__.primary_key
被错误的断言捕获。