我正在使用python2.7和SQLAlchemy 0.9.8并尝试使用部分索引。在
我有两张桌子(只是相关部分)
class DesignerRange
__tablename__ = 'designer_ranges'
shortcode = Column(Unicode(12))
class Design
__tablename__ = 'designs'
shortcode = Column(Unicode(12))
designer_range_id = Column(
Integer,
ForeignKey('designer_ranges.id'),
nullable=False,
)
designer_range = relationship(
DesignerRange,
backref=backref(
'designs',
single_parent=True,
),
lazy='joined',
)
我想创建一个部分索引,当设计的shortcode不为null(它存在)时,它在designerange中应该是唯一的。在
我正在尝试这样的事情
^{pr2}$这是最终的Alembic迁移
op.create_index('design_shortcode', 'designs', ['shortcode', 'shortcode'], unique=True, postgresql_where=sa.text('designs.shortcode IS NOT NULL'))
但我得到了这个警告
sqlalchemy/sql/base.py:508: SAWarning: Column 'shortcode' on table <sqlalchemy.sql.selectable.TableClause at 0x7f50a1768550; designer_ranges> being replaced by Column('shortcode', Unicode(length=12), table=<designs>), which has the same key. Consider use_labels for select() statements.
在这种情况下,我不知道在哪里应用use-labes,它似乎只存在于select子句中。谢谢
我已经用
所以,我不想从外键表中获取shortcode,而是获取它的惟一id
相关问题 更多 >
编程相关推荐