django中使用多数据库小记

2019年3月2日11:37:42 发表评论 427 views
摘要

在开发中会经常使用多个数据库,或者不同的数据库,我在这里记录在django中使用多个数据源的使用。

1、settings配置

首先settings中需要配置多个数据库的相关设置,在DATABASES属性中设置,我这里以mysql,sqlite3为例

如果不用默认的数据库直接将default的值设置为空就行'default': {}。

2、routing scheme的编写

routing scheme主要用于控制app、model和数据的关系,有以下4个方法:

db_for_read:指定模型和数据源的读关系。

db_for_write:指定模型和数据源的写关系。

allow_relation:验证两个object是否可以存在外键和多对多的关系。

allow_migrate:判断migration操作是否可以在相应的数据库上执行。

下面的例子类MultimysqlRouter用于和multimysql这个app进行绑定,DefaultRouter用于出应用multimysql外的其他应用的绑定:

最后,需要将上面的两个类加到settings的DATABASE_ROUTERS设置中去,参考标题一中的例子。

3、同步数据库

由于migrate每次只能操作一个数据库,且是默认的数据库,所以要想非默认的数据库生效,必须指定使用settings中的那个数据库设置。同时最好把用名称加上。

参考

https://docs.djangoproject.com/en/2.1/topics/db/multi-db/

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: