Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MongoEngine变更数据库_Python_Mongodb_Flask_Mongoengine - Fatal编程技术网

Python MongoEngine变更数据库

Python MongoEngine变更数据库,python,mongodb,flask,mongoengine,Python,Mongodb,Flask,Mongoengine,由于我的项目设置(与相同),当我运行python测试()时,在我的配置设置为test(第11行)之前,会创建到开发数据库的连接。这会导致我的测试出现问题,因为它们要在干净的数据库上运行 在网上,我只找到了对的描述,但这不是我需要的。我需要更改连接正在使用的数据库,或者删除连接并创建一个新的数据库。这两件事我都找不到办法。。我错过什么了吗?我的连接只是使用这行代码初始化的,在我的主应用程序目录的init.py中 from mongoengine import connection db_name

由于我的项目设置(与相同),当我运行python测试()时,在我的配置设置为test(第11行)之前,会创建到开发数据库的连接。这会导致我的测试出现问题,因为它们要在干净的数据库上运行

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

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

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


将mongoengine集成到您的应用程序中的最佳方法是使用类似的工具,它将立即解决此问题。

在mongoengine中使用类似的工具

from flask.ext.mongoengine import mongoengine
mongoengine.register_connection("alias1", "db1")
mongoengine.register_connection("alias2", "db2")
在模型中,在meta中添加条目或使用queryset的switch方法


不确定mongoengine插件如何解决此问题。我所做的是为config提供一个系统参数,这意味着我使用start.environment变量*中正确的一个;-)该插件非常有用,因为它提供了一些额外的功能,并使mongodb在应用程序工厂中只需很少的代码即可工作。