从SQLAlchemy 0.8.4升级到1.1.5后,出现以下错误。SQLAlchemy 中的哪些更改导致了这种情况?我该如何解决?
CompileError: (in table 'flights', column 'id'): SQLite does not support autoincrement for composite primary keys
class Flights(db.Model):
__tablename__ = 'flights'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
departure = db.Column(db.Integer, db.ForeignKey('airport.id'), primary_key=True)
arrival = db.Column(db.Integer, db.ForeignKey('airport.id'), primary_key=True)
该主键没有意义。让两个外键成为主键的一部分是没有意义的,仅仅凭借自动增量,它就已经是唯一的了。
如果要确保机场不同,请使用检查约束。如果要快速按机场搜索,请在列上创建索引。
至于错误,在 1.1 中添加了对自动增量和组合键与 SQLite 一起使用的情况的检查,并在文档中进行了相关解释。它可能没有按照您之前的预期进行,但没有引发错误。