Я видел множество вопросов, связанных с этой проблемой, но я не могу все исправить.
Я не могу сгенерировать свои таблицы, вот отрывочные версии.
class Member(BASE):
__tablename__ = "members"
discord_id = Column(BigInteger, primary_key=True,nullable=False)
guild = Column(BigInteger, ForeignKey('guilds.discord_id'),primary_key=True)
rs_runs = relationship("RSRun",secondary='member_on_rs_run')
# guild = Column(BigInteger, ForeignKey('guilds.discord_id'),primary_key=True)
__table_args__ = (UniqueConstraint("discord_id","guild"),)
class Guild(BASE):
__tablename__ = "guilds"
name = Column(String)
discord_id = Column(BigInteger, primary_key=True, nullable=False)
class RSRun(BASE):
__tablename__ = "rs_runs"
id = Column(Integer, primary_key=True, nullable=False)
creator = Column(BigInteger, ForeignKey('members.discord_id'))
members = relationship("Member",secondary='member_on_rs_run')
guild = Column(BigInteger, ForeignKey("guilds.discord_id"),nullable=False)
class MemberOnRSRun(BASE):
__tablename__ = "member_on_rs_run"
member_id = Column(BigInteger, primary_key = True)
member_guild = Column(BigInteger,primary_key=True)
run_id = Column(Integer,ForeignKey('rs_runs.id'),primary_key=True)
__table_args__ = (ForeignKeyConstraint(['member_id', 'member_guild'],[Member.discord_id, Member.guild]),)
Я сталкиваюсь с ошибкой psycopg2.errors.InvalidForeignKey: не существует уникального ограничения, соответствующего данным ключам для "членов" ссылочной таблицы
Однако у меня есть ограничение Unique для этих ключей вместе, и я имею составной ForeignKeyConstraint правильно сгенерирован (я думаю). Я не уверен, что я делаю неправильно.
Таблица MembersOnRSRun предназначена для связи «многие ко многим».
Обратите внимание, что все работало нормально, пока я не добавил таблицу гильдий со столбцами гильдий.