在 sqlalchemy (0.8.2) 中,drop_all()
两者create_all()
都有一个tables
参数,可以是要删除或添加的 Table 对象的列表。
在 flask-sqlalchemy (1.0) 这些方法没有这个参数。
使用烧瓶炼金术删除/创建数据库表子集的适当方法是什么?
在 sqlalchemy (0.8.2) 中,drop_all()
两者create_all()
都有一个tables
参数,可以是要删除或添加的 Table 对象的列表。
在 flask-sqlalchemy (1.0) 这些方法没有这个参数。
使用烧瓶炼金术删除/创建数据库表子集的适当方法是什么?
Flask-SQLAlchemy 的create_all()
方法将使用 Base 的元数据通过调用 SQLAlchemy 的MetaData.create_all()
方法来创建表。此方法允许指定一个表对象列表。您还需要为它提供一个“绑定”,它基本上就是引擎。您可以使用Flask-SQLAlchemy的引擎属性检索它。
所以,你应该可以做...
db = SQLAlchemy(app)
class MyTable(db.Model):
...
class MyOtherTable(db.Model):
...
db.metadata.create_all(db.engine, tables=[
MyTable.__table__,
...
])
这假设您使用的是单个数据库。否则,您需要create_all()
使用get_engine()
.