MongoEngine更改数据库

时间:2015-03-29 00:05:21

标签: python mongodb flask mongoengine

由于我的项目设置(与flasky相同),当我运行我的python测试(line 34)时,在我的配置设置为test(行之前)创建了与开发数据库的连接11 here)。这导致我的测试出现问题,因为它们意味着在干净的DB上运行。

在线查看,我只找到switch_db的描述,但这不是我需要的。我需要更改我的连接正在使用的数据库,或者删除连接并创建一个新连接。我找不到办法做其中任何一个..我错过了什么吗?我的连接只是使用这行代码在我的主应用程序目录的 init .py中初始化。

from mongoengine import connection
db_name = 'name_from_config'
connection(db_name)

2 个答案:

答案 0 :(得分:1)

在mongoengine

中有类似的东西
from flask.ext.mongoengine import mongoengine
mongoengine.register_connection("alias1", "db1")
mongoengine.register_connection("alias2", "db2")

在模型中,在meta中添加条目或使用queryset的switch方法

similar question at stackoverflow

答案 1 :(得分:0)

出于这个原因,您应该避免以您描述的方式创建与mongoengine的连接。 Flasky使用application factory方法,允许应用程序知道在实现数据模型时使用哪个连接配置。

将mongoenigne集成到您的应用中的最佳方法是使用flask-mongoengine之类的东西来解决这个问题。