在sqlalchemy(0.8.2)中,drop_all()
和create_all()
都有一个tables
参数,可以是要删除或添加的Table对象列表。
在flask-sqlalchemy(1.0)中,这些方法没有此参数。
使用flask-alchemy?
删除/创建数据库表子集的适当方法是什么?答案 0 :(得分:8)
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()
调用。