Я работаю с sqlalchemy и MySQL для создания базы данных. В настоящее время у меня возникают проблемы с определением конкретной связи между двумя таблицами.Использование sqlalchemy для определения отношений в MySQL
class Experiment_Type(Base):
__tablename__='experiment_types'
id = Column(Integer, primary_key=True)
type = Column(String(100))
class Experiments(Base):
__tablename__ = 'experiments'
id = Column(Integer, primary_key=True)
type = Column(String(100))
sub_id = Column(Integer, ForeignKey('experiment_types.id'))
experiments = relationship('Experiments',
primaryjoin="and_(Experiment_Type.id == Experiments.sub_id,
'Experiments.type' == 'Experiment_Type.type')",
backref=backref('link'))
То, что я хочу сделать, это иметь значения sub_id в экспериментах соответствует идентификатору experiment_types в зависимости от типа (если запись в experiment_types типа = «типа1» имеет ID = 1, то запись в экспериментах с type = 'type1' должен иметь sub_id = 1). Я даже не уверен, что это лучший способ приблизиться к определению отношений в этой ситуации , поэтому любые советы приветствуются.
Текущее сообщение об ошибке заключается в следующем:
sqlalchemy.exc.ArgumentError: Не удалось найти какие-либо соответствующие столбцы внешнего ключа для первичного присоединиться к условию «0 = 1» на отношения Experiments.experiments. Убедитесь, что ссылки на столбцы связаны с ForeignKey или ForeignKeyConstraint или аннотируются в состоянии соединения с помощью аннотации foreign().