【问题标题】:How to separate read db server and write db server on django 0.97?如何在 django 0.97 上分离读取数据库服务器和写入数据库服务器?
【发布时间】:2011-06-18 09:55:06
【问题描述】:

我正在使用带有 postgresql 9.0 的 Django 0.97 版本。我在主数据库服务器和从数据库服务器上配置了热流复制。我的应用程序在数据库上有大量机器人驱动的写入,并且只从用户那里读取。因此,如果我为用户创建读访问从属数据库,为机器人写访问创建写访问主数据库,它会非常优化。不幸的是,只有 Django 1.2 支持多个数据库,并且在我的应用程序中升级需要付出巨大的努力。我通过以下链接获得了一些线索:http://www.eflorenzano.com/blog/post/easy-multi-database-support-django/ 但是,这也需要我更改应用程序中所有 db 访问实例。有没有更简单的方法可以通过摆弄 django core db 模块来分配单独的数据库服务器进行读取访问和写入访问?

【问题讨论】:

  • 可以预见,在如此古老的 Django 版本中使用一个非常新的 Postgresql 功能,您将很难获得任何帮助......
  • 从来没有 Django 0.97 这样的东西。大概您在 0.96 和 1.0 之间运行了一些未知的结帐。为什么不能升级?

标签: python django postgresql django-models scalability


【解决方案1】:

最好的办法是升级到 1.2,因为它比将已经存在的功能组合在一起要少得多。如果你坚持 0.97 的时间更长,你的生活只会更加艰难。

我猜你可能对如何在 Django 1.2 中使用多个 DB 有一些误解。如果您使用 Django 的 Database Routers 功能,则不必“更改 [您的] 应用程序中的所有 db 访问实例”。

使用路由器,您可以指定用于读取和写入的数据库。您现有的所有 django 模型都应该可以工作并开始向正确的数据库发送请求。设置路由器非常简单,只需检查docs。所需要做的就是创建路由器类,将其放在某个位置,然后在您的设置中添加一行。

它工作得非常好,并没有你想象的那么多。您可能会遇到其他未告诉我们的升级问题,但就模型而言,您应该不会有很多问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 2021-04-07
    • 2020-06-05
    • 2013-07-12
    • 2012-12-16
    • 1970-01-01
    • 2013-02-17
    相关资源
    最近更新 更多