Django中使用多个数据库

在Django项目中,可能需要连接2个或多个数据库。我在项目中遇到了这种需求,文末参考文档中有更多的知识点;不过,我自己使用的是编写自己的Database Router。

首先,在setting.py文件中,需要配置好多个数据库,如:

2. 编写Database Router,可以根据model的app_label来指定使用某个DB,如下(在db_router.py):

3. 在settings.py文件中配置DB router,例如:
DATABASE_ROUTERS = ['aew.db_router.BugzillaRouter', 'aew.db_router.AewRouter']
注意这个是有顺序的(先匹配上的规则,就先生效)。

4. 在models中配置想用的model时,指定好app_label,如下:

这样配置的情况下,Products就是使用的default的DB,而Classifications就是使用的bugzilla DB.

参考资料:
https://docs.djangoproject.com/en/dev/topics/db/multi-db/
https://thenewcircle.com/s/post/1242/django_multiple_database_support

master

Stay hungry, stay foolish.

发表评论

邮箱地址不会被公开。 必填项已用*标注

*