Django multi-db:将所有写入路由到多个数据库

时间:2012-08-22 09:24:31

标签: python django redundancy webfaction django-orm

我目前正面临一个更具体的问题,这个问题与将在@WebFaction上托管的特定网站的故障转移支持/冗余有关。不幸的是,数据库级别的复制不是一个选项,因为我必须为每个帐户安装我自己的本地PostgreSQL实例,我担心其他方面的性能。所以我正在考虑使用Django的多数据库功能,并将所有写入路由到所有(共享)数据库,并平衡读取到最近的数据库。

我现在的问题是,我读到的所有文档似乎都表明这很可能是不可能的。更确切地说,我需要的是:

  • 将所有写入路由到一组特定的dbs(相同类型,版本,......)
  • 如果一次写入失败,则所有其他写入将被回滚(交易)
  • 将所有读取路由到最近的数据库(可以静态配置)

Django的多数据库支持目前是否可以实现这一目标?

非常感谢您提供任何帮助/提示......

1 个答案:

答案 0 :(得分:1)

我正在寻找类似的东西。我找到的是:

1)尝试使用Xeround云数据库 - 它基于MySQL构建且兼容但不支持保存点。您必须在(自定义)数据库引擎中禁用此功能。好处是它们在数据库级别进行复制并提供自动可伸缩性和故障转移。您的应用就像有一个数据库一样工作。他们目前遇到了一些连接问题,但这阻碍了我的迁移。

2) django-synchro软件包 - 看起来在应用层重复发布,但我对它有些担忧。它不适用于我在代码中使用很多的objects.update()。