2011-07-20 66 views
3

我有数据库具有相同的模式分布在几个服务器上,我需要路由Django模型来读取不同服务器上的数据库。我知道我可以使用路由器将读取数据发送到settings.DATABASES中的不同数据库,但地址可能随时更改,并且保持DATABASES为最新状态将是不切实际的。Django模型与动态连接接口

Django似乎会路由基于大部分数据库别名的模型,它使用它来查找django.db.connections中的正确连接。是否有一种很好的方法可以动态地将连接和别名添加到ConnectionHandler实例中,而不必破解_connections属性?我应该找到一些方法来动态填充settings.DATABASES

+0

尽管是一个老问题,戴夫亚伦史密斯的答案可能有所帮助:http://stackoverflow.com/questions/268089/multiple-database-support-in-django 或文档的答案:'./manage.py syncdb --database = users',其中'users'是不幸的别名! 不能给出明确的答案(我也需要它),我已经谷歌它,但什么都没有! – StefanNch

+0

我想出的解决方案是在设置中动态地将字典添加到DATABASES字典中。基本上,无论何时需要一台新服务器,我都会在DATABASES中克隆一个合适的配置,用适当的服务器名称或IP替换主机,然后将其添加到带有服务器名称别名的DATABASES。 – exupero

回答

-1

我应该找到一些方法来动态填充settings.DATABASES

如果你的意思改变settings.py在运行时,you should not

+1

事后看来,作为对您问题的评论可能会更好。 – QasimK