在sqlalchemy(0.8.2)中,drop_all()
和create_all()
都有一个tables
参数,可以是一个列表要删除或添加的表对象。
在flask-sqlalchemy(1.0)中这些方法没有这个参数。
使用 flask-alchemy 删除/创建数据库表子集的合适方法是什么?
最佳答案
Flask-SQLAlchemy 的 create_all()
方法将使用 Base 的元数据通过调用 SQLAlchemy 的 MetaData.create_all()
创建表。方法。此方法允许指定表对象列表。您还需要为它提供一个“绑定(bind)”,这基本上就是引擎。您可以使用 engine 检索它Flask-SQLAlchemy 的属性。
所以,你应该能够做到...
db = SQLAlchemy(app)
class MyTable(db.Model):
...
class MyOtherTable(db.Model):
...
db.metadata.create_all(db.engine, tables=[
MyTable.__table__,
...
])
这假定您使用的是单个数据库。否则,您需要使用 get_engine()
为每个数据库调用 create_all()
.
关于python - flask-sqlalchemy 对特定表使用 drop_all 和 create_all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19232126/