У меня есть отношение один к одному между кодами клетки и числами Дуна.
Я настроил свои отношения так, как будто я храню ForeignKey на каждой из соответствующих таблиц.
class Cage(Base):
__tablename__ = 'DimCage'
id = Column(Integer, primary_key=True)
cage = Column(String(8), unique=True, nullable=False)
duns_id = Column(Integer, ForeignKey('DimDuns.id'))
duns = relationship('Duns', uselist=False, back_populates='cage')
class Duns(Base):
__tablename__ = 'DimDuns'
id = Column(Integer, primary_key=True)
duns = Column(String(10), unique=True, nullable=False)
dunsInt = Column(Integer, unique=True, nullable=False)
cage_id = Column(Integer, ForeignKey('DimCage.id'))
cage = relationship('Cage', uselist=False, back_populates='duns')
Когда я создаю таблицы, я получаю сообщение об ошибке ниже, как мне настроить внешние ключи, чтобы я мог сохранить ссылку на обе таблицы?
sqlalchemy.exc.AmbiguousForeignKeysError: Невозможно определить соединение между 'DimCage' и 'DimDuns'; таблицы имеют более одного отношения ограничения внешнего ключа между ними. Пожалуйста, укажите 'onclause' этого соединения явно.
И во время обработки вышеупомянутого исключения произошло другое исключение:
sqlalchemy.exc.AmbiguousForeignKeysError: Не удалось определить условие соединения между родительскими / дочерними таблицами в отношении Cage.duns - существует несколько путей внешнего ключа, связывающих таблицы. Укажите аргумент foreign_keys, предоставляющий список тех столбцов, которые должны учитываться как содержащие ссылку на внешний ключ родительской таблицы.