Индекс нескольких столбцов при использовании декларативного расширения ORM sqlalchemy

Согласно документации и комментариям в классе sqlalchemy.Column , мы должны использовать класс sqlalchemy.schema.Index , чтобы указать индекс, содержащий несколько столбцов.

Однако в примере показано, как это сделать, напрямую используя объект Table следующим образом:

meta = MetaData()
mytable = Table('mytable', meta,
    # an indexed column, with index "ix_mytable_col1"
    Column('col1', Integer, index=True),

    # a uniquely indexed column with index "ix_mytable_col2"
    Column('col2', Integer, index=True, unique=True),

    Column('col3', Integer),
    Column('col4', Integer),

    Column('col5', Integer),
    Column('col6', Integer),
    )

# place an index on col3, col4
Index('idx_col34', mytable.c.col3, mytable.c.col4)

Как нам это сделать, если мы используем декларативное расширение ORM?

class A(Base):
    __tablename__ = 'table_A'
    id = Column(Integer, , primary_key=True)
    a = Column(String(32))
    b = Column(String(32))

Мне нужен указатель столбцов «a» и «b».

83
задан Mark Amery 5 January 2018 в 14:10
поделиться