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

标签 python sqlalchemy flask-sqlalchemy

在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/

相关文章:

python - Windows、Eclipse、Pretty Printers - ImportError : No module named _gdb

python - flask 棉花糖/SqlAlchemy : Serializing many-to-many relationships

python - 在 Python 中存储对原始类型的引用?

由于存在 'Not well-formed xml' 个字符,Python 给出 '&' 错误

python - SQLAlchemy 和 UnicodeDecodeError

python - Flask SQLAlchemy 未获取更改的记录

python - sqlalchemy 测试 : adding same user twice not throwing exception when unique=True

postgresql - 如何在 SQLAlchemy 中创建带有外键约束的 ARRAY 字段?

python - 如何使用 sqlalchemy 查找每个 "n"的最新条目

Python Flask WTForms 依赖下拉列表