I am using SQLALchemy in flask. And I am confused about how to set two columns as foreign keys reference two primary keys.
class Feature(db.Model):
    __tablename__ = 'feature'
    id = db.Column(Integer, primary_key=True)
    sample_id = db.Column(Integer, ForeignKey('sample.id'), primary_key=True)
class Move(db.Model):
    __tablename__ = 'move'
    id = db.Column(Integer, primary_key=True, autoincrement=True)
    feature_id = db.Column(Integer, ForeignKey(Feature.id), nullable=False)
    sample_id = db.Column(Integer, ForeignKey(Feature.sample_id), nullable=False)
    __table_args__ = (
        db.UniqueConstraint('feature_id', 'sample_id'),
    )
I've tried several configurations but when I try to insert something I get:
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) foreign key mismatch - "move" referencing "feature"
In fact the create statement is wrong:
CREATE TABLE move (
    id INTEGER NOT NULL, 
    feature_id INTEGER NOT NULL, 
    sample_id INTEGER NOT NULL,
    PRIMARY KEY (id), 
    UNIQUE (feature_id, sample_id), 
    FOREIGN KEY(feature_id) REFERENCES feature (id), 
    FOREIGN KEY(sample_id) REFERENCES feature (sample_id)
)
The last line should be:
FOREIGN KEY(feature_id, sample_id) REFERENCES feature (id, sample_id)
