Django multi-database routing

前端 未结 4 1706
生来不讨喜
生来不讨喜 2020-12-02 20:53

I have been using manual db selection to cope with a project which has two seperate dbs. I have defined my databases in the settings.

After some further reading it

4条回答
  •  半阙折子戏
    2020-12-02 21:16

    Did not help me, so I did some debugging. Maybe the results can save someone some pain. :) The problem in django 1.4 is a circular reference that occurs when django tries to import the custom router class.
    This happens in django.db.utils.ConnectionRouter. In my case the app's __init__.py imported a module (tastypie.api to be precise) that in turn (and through a long chain) imported django.db.models. That is not bad in itself, but models tries to import connection from django.db and that happens to have a dependency on ConnectionRouter. Which is exactly where our journey started. Hence the error.

    This is described as a bug in django < 1.6 here: https://code.djangoproject.com/ticket/20704 and there is a nice small changeset thats supposed to fixed it in django 1.6:https://github.com/django/django/commit/6a6bb168be90594a18ab6d62c994889b7e745055

    My solution however was to simply move routers.py from the app directory to the project directory. No nasty dependencies there.

提交回复
热议问题