2016-11-10 38 views
3

我有以下SQLAlchemy模型。它已成功地迁移到数据库:为什么我得到SQLAlchemy错误“__table_args__值必须是元组,字典或无”

class MyClassA(db.Model, Timestamp): 
    a_id = db.Column(db.Integer, nullable=False, primary_key=True) 
    b_id = db.Column(db.Integer, db.ForeignKey(C.c_id), nullable=False) 
    d = db.Column(db.String(1024)) 
    e_id = db.Column(db.Integer, 
         db.ForeignKey(e.e_id)) 

现在我想在第二个和第四个字段中添加唯一性约束。所以我下面的行添加到模型:

 __table_args__ = db.UniqueConstraint('b_id', 'e_id', name='unique_constraint_bid_eid') 

但现在,当我尝试迁移它,我得到以下错误:

sqlalchemy.exc.ArgumentError: __table_args__ value must be a tuple, dict, or None 

为什么会出现这个错误?我该如何解决它?我尝试在方括号中放置等式的右边,但那并没有解决它。

+0

尝试'__table_args__ =(db.UniqueConstraint(“B_ID”, 'e_id',name ='unique_constraint_bid_eid'),)' – sobolevn

回答

5

table_args应该是一个元组,字典或None,如错误代码所示。如果你让一个元组,那么你必须把你的价值在括号中还末有一个逗号在那里:

尝试:

 __table_args__ = (db.UniqueConstraint('b_id', 'e_id', name='unique_constraint_bid_eid'),) 
+0

工作!谢谢!我错过了逗号! –

相关问题