如何解决如果在 drop_all 之后立即调用,flask-SQLAlchemy create_all() 不会创建表
我正在尝试编写 pytest
固定装置 app
,在测试前创建所有表并在完成后删除所有表。
@pytest.fixture
def app(request):
"""Create and configure a new app instance for each test."""
app = create_app("test") # factory function that return Flask app
from academy.models import (User,Auth)
def finalizer():
db.session.remove()
db.drop_all()
print("tables after drop_all: ",db.engine.table_names()) # empty list
request.addfinalizer(finalizer)
db.create_all()
print("tables after create_all: ",db.engine.table_names()) # <<< Error here
return app
通过这个 app
固定装置,我得到了以下输出:
tables after create_all: ['user','auth']
tables after drop_all: []
tables after create_all: []
tables after drop_all: []
tables after create_all: []
如果我运行单个测试不会出现问题,但是如果有多个测试,只有第一个会按预期运行,其余的会失败。
我想知道为什么 flask-sqlalchemy
删除后不能创建表!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。