如何在django 0.97上分离读取数据库服务器和写入数据库服务器?

时间:2011-01-31 06:55:14

标签: python django postgresql django-models scalability

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

1 个答案:

答案 0 :(得分:1)

你最好的选择是升级到1.2,因为它的工作量远远少于黑客攻击已经存在的功能。如果你坚持使用0.97更长的时间,你的生活将会变得更加困难。

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

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

它的效果非常好,并没有你想象的那么多。您可能还有其他问题,但您没有告诉我们,但就模型而言,您应该没有太多问题。