2014-02-26 38 views
0

我使用的是dongang non-rel与mongodb后端。 该文档清楚如何连接到单个主机,但是我想连接到副本集中的所有主机。Django无法连接到副本集中的多个主机

有没有可能这样做?

如何将settings.py中的数据库元素看起来像一个连接字符串,如这样的:

mongodb://db1.example.net,db2.example.net:2500/?replicaSet=test 

回答

0

在MongoDB引擎项目中存在一个悬而未决的问题。

https://github.com/django-nonrel/mongodb-engine/pull/170#issuecomment-42406797

从评论,这是它应该怎么做:

DATABASES = { 

    'default': { 
     'ENGINE': 'django_mongodb_engine', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
     'NAME': 'dbname',     # Or path to database file if using sqlite3. 
     'USER': '',      # Not used with sqlite3. 
     'PASSWORD': '',     # Not used with sqlite3. 
     'HOST': 'mongodb://mongodb1.domain.com:27107, mongodb2.domain.com:27017/?replicaSet=replicaname', 
    }, 
} 

更新:

这已被证实在主分支上工作:

git + https://github.com/django-nonrel/mongodb-engine

0

我已经研究过这个问题,不幸的是,这是目前不可能,但我已经退出功能请求尝试在未来版本中实现这一点。

当前,您将不得不分别连接到每个数据库,但您可以查看异步连接或后台任务以加快应用程序性能。

+0

我没有看到如何连接到每个数据库分别帮助我在这里的django非rel的上下文。请解释。 此外,应用程序性能不是这里的问题,而是与副本集的可靠连接。 你能提供一个链接到功能请求吗? – odedfos