2013-10-07 22 views
3

在sqlalchemy(0.8.2),drop_all()create_all()中都有一個tables參數,該參數可以是要刪除或添加的表對象列表。flask-sqlalchemy對特定表使用drop_all和create_all

在flask-sqlalchemy(1.0)中,這些方法沒有這個參數。

使用燒瓶鍊金術來放置/創建數據庫表子集的適當方法是什麼?

回答

6

Flask-SQLAlchemy的create_all()方法將使用Base的元數據通過調用SQLAlchemy的MetaData.create_all()方法來創建表。此方法允許指定一個表對象列表。你還需要提供一個「綁定」,這基本上就是引擎。您可以使用Flask-SQLAlchemy的engine屬性來檢索該屬性。

所以,你應該能夠做到......

db = SQLAlchemy(app) 

class MyTable(db.Model): 
    ... 

class MyOtherTable(db.Model): 
    ... 

db.metadata.create_all(db.engine, tables=[ 
    MyTable.__table__, 
    ... 
]) 

這是假設你使用一個單一的數據庫。否則,您需要使用get_engine()爲每個數據庫撥打create_all()