Вот определение таблицы с использованием SQLAlchemy Declarative_base:
t_measures_voyage_crude = Table(
'measures_voyage_crude', metadata,
Column('tanker', String(255)),
Column('load_point', Text),
Column('load_port', String(255)),
Column('load_country', NullType),
Column('load_region', String(255)),
Column('date_depart', Date),
Column('offtake_point', Text),
Column('offtake_port', String(255)),
Column('offtake_country', NullType),
Column('offtake_region', String(255)),
Column('date_arrive', Date),
Column('grade', Text),
Column('bbls', BigInteger),
Column('row_num', Integer, index=True),
Column('date_num', Integer, index=True),
Column('stat_num', Integer, index=True),
schema='numbergo'
)
У него есть три индексированных поля, но если у меня есть объект таблицы в переменной, как мне перечислить эти столбцы, которые имеют индексы?
Аналогично для класса произнесите следующее:
class MasterBpd(Base):
__tablename__ = 'master_bpd'
__table_args__ = {'schema': 'numbergo'}
date = Column(Date, primary_key=True)
bpd_imp_yr = Column(Integer)
bpd_imp_mo = Column(Integer)
bpd_imp_wk = Column(Integer)
bpd_dom_yr = Column(Integer)
bpd_dom_mo = Column(Integer)
bpd_dom_wk = Column(Integer)
row_num = Column(BigInteger, nullable=False, index=True)
date_num = Column(BigInteger, nullable=False, index=True)
Как программно проверить, какие поля имеют индексы, а какой первичный ключ?