2016-11-10 39 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

工作!謝謝!我錯過了逗號! –

相關問題