flask-sqlalchemy对特定表使用drop_all和create_all

Lou*_*u K 6 python sqlalchemy flask-sqlalchemy

在SQLAlchemy的(0.8.2),drop_all()create_all()两者都具有tables参数,其可以是表的对象的列表删除或添加.

在flask-sqlalchemy(1.0)中,这些方法没有此参数.

使用flask-alchemy删除/创建数据库表子集的适当方法是什么?

Mar*_*eth 8

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__,
    ...
])
Run Code Online (Sandbox Code Playgroud)

这假设您使用的是单个数据库.否则,您需要使用create_all()调用每个数据库get_engine().