foo_id = Column(String(50), ForeignKey('foo.id'), primary_key=True)
some_number = Column(Integer, primary_key=True)
Правило зависимостей пыталось скрыть первичный ключ в SQLAlchemy, когда ограничение внешнего ключа является частью составного первичного ключа.