Django项目(电子商务网站),我们需要划分为买方,卖方和管理的子项目,并将创建相应的三个数据库。那么,如果在一个项目中进行了更新,我们如何在3个项目中管理相同的模型(模式)呢?
发布于 2020-06-21 12:44:19
Django支持同一项目的多个数据库功能。
这可以通过在settings.py中将多个数据库属性定义为
DATABASES = {
'default': {},
'buyer': {
'NAME': 'buyer',
'ENGINE': 'django.db.backends.mysql',
'USER': '',
'PASSWORD': ''
},
'customers': {
'NAME': 'customers',
'ENGINE': 'django.db.backends.mysql',
'USER': '',
'PASSWORD': ''
}
}需要与此一起定义路由器。
也可以手动选择数据库由使用关键字,例如。
## fetch
Customer.objects.using('customers').all()
## save
customer_obj.save(using='customers')当然,多个数据库也有一些限制,比如
Django目前不支持跨多个数据库的外键或多对多关系。
contrib应用程序的
一些contrib应用程序包括模型,一些应用程序依赖于其他应用程序。由于跨数据库关系是不可能的,这对如何跨数据库拆分这些模型产生了一些限制:https://docs.djangoproject.com/en/3.0/topics/db/multi-db/#behavior-of-contrib-apps
有关更多详细信息,请访问官方链接:
https://stackoverflow.com/questions/50624140
复制相似问题