django配置多数据库路由问题。

今天根据网上http://my.oschina.net/u/572994/blog/108533配置django多数据库,但是配置好有执行syncdb --datebase=one 居然发现错误:django.core.exceptions.ImproperlyConfigured: Module "<module 'dbrouter' from 'E:\django\three\dbrouter\__init__.py'>" does not define a database router name "DBRouter",

查看了下settings设置,发现少写了个域

  
  
  
  
  1. DATABASE_ROUTERS = ['dbrouter.DBRouter'

修改成

 

  
  
  
  
  1. DATABASE_ROUTERS = ['dbrouter.models.DBRouter'

执行sysncdb --database=onedb结果发现2个models都被create到onedb指定的库里了?为什么

 

 

因为我在写dbrouter的时候,忘记写了个方法;

 

  
  
  
  
  1. def allow_syncdb(self, db, model):  
  2.         return self.__app_router(model)==db  
这个方法是告诉程序:该方法定义数据库是否能和名为db的数据库同步

OK,搞定。具体的我下篇文章讲解针对django配置需要注意的几点问题及代码讲解。

你可能感兴趣的:(django,多数据库,router)