- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在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/
我尝试使用“Base.metadata.drop_all(bind=engine)”删除模式中所有存在的表,然后重新创建一个新表。然而,表并没有像我想的那样被删除,只是在旧表上追加了记录。我是 sql
在sqlalchemy(0.8.2)中,drop_all()和create_all()都有一个tables参数,可以是一个列表要删除或添加的表对象。 在flask-sqlalchemy(1.0)中这些
我正在为 Flask 应用程序编写测试用例。 我有一个 setUp 方法,它在重新创建它们之前删除数据库中的表。它看起来像这样: def setUp(self): # other stuff.
我有一个相当标准的 Flask-SQLAlchemy 设置连接到 PostgreSQL 9.4 数据库。 出于测试目的,我想调用 db.create_all()在数据库事务范围内,运行我的测试,然后调
我正在使用 Flask 及其各种扩展开发 API。我有一个与本地 MySQL 数据库建立连接的数据库。当我尝试执行 db.drop_all() 时,出现以下错误: Traceback (most re
我是一名优秀的程序员,十分优秀!