繁体   English   中英

使用Flask和Postgres的SQLALchemy DB会话

[英]SQLALchemy DB Session with Flask, Postgres

我将Flask与SQLAlchemy结合使用,如下所示: http : //flask.pocoo.org/docs/patterns/sqlalchemy/

我有一个Selenium测试套件,该套件首先与Firefox一起运行,然后与Chrome一起运行。

在每个浏览器上开始测试之前,请删除并创建测试数据库(PostgreSQL)中的表。

它可以在第一个浏览器上完美运行,但是对于第二个浏览器,SQL创建/删除尝试只是冻结,并且不会显示任何错误。

我相信这是因为打开了SQLAlchemy会话,对吗?

我相信这是因为打开了SQLAlchemy会话,对吗?

很有可能是这种情况。 要确认它,请连接到postgres数据库并运行SELECT * FROM pg_stat_activity ;

我不确定如何处理数据库的创建/删除,但是在确保已返回所有签出的连接(例如,使用session.close() dispose() ,您可能想在SQLAlchemy连接池上调用dispose()并可能在reAllow recreate()session.close() )。

在使用SQLAlchemy和Postgres运行Flask unittest时,这也是我发生的事情。 很多时候,罪魁祸首是一个例外,它没有向上传播并被卡住。 此异常还会阻止测试正确清理,因此冻结。

如果要创建测试套件,请在该套件上调用debug方法,它将显示异常。 链接这种方法的文档在这里

您对打开的Sqlalchemy会话的观察也可能是原因。 我明天将根据这一观察结果测试我的理论。 如果它消除了一些疑问,那么我将在这里发布。

查看此答案 ,该答案显示了如何在异常时触发调试器。 也许可以帮助查明问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM