【问题标题】:Django models interface with dynamic connectionDjango 模型接口与动态连接
【发布时间】:2011-07-20 14:07:42
【问题描述】:

我有分布在多台服务器上的具有相同架构的数据库,我需要路由一个 Django 模型以从不同服务器上的数据库中读取。我知道我可以使用路由器将读取发送到 settings.DATABASES 中的不同数据库,但地址可能随时更改并且保持 DATABASES 最新是不切实际的。

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

【问题讨论】:

  • 虽然是一个老问题,但 Dave Aaron Smith 的回答可能会有所帮助:stackoverflow.com/questions/268089/… 或者文档的回答:./manage.py syncdb --database=users,其中 users 是不幸的别名!不能给出明确的答案(我也需要它),我已经谷歌了,但还没有!
  • 我想出的解决方案是动态地将字典添加到设置中的 DATABASES 字典中。基本上,每当我需要一个新服务器时,我都会在 DATABASES 中克隆一个合适的配置,用适当的服务器名称或 IP 替换主机,然后使用服务器名称的别名将其添加到 DATABASES。

标签: python django


【解决方案1】:

我是否应该找到某种方法来动态填充settings.DATABASES

如果您打算在运行时更改 settings.pyyou should not

【讨论】:

  • 事后看来,作为对您问题的评论,这可能会更好。
猜你喜欢
  • 2022-01-07
  • 1970-01-01
  • 2023-03-10
  • 2016-04-27
  • 2021-08-24
  • 1970-01-01
  • 2015-11-22
  • 2019-07-07
  • 2014-02-03
相关资源
最近更新 更多