Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将大型Django项目划分为子项目进行扩展?_Django_Git_Project_Scaling_Divide - Fatal编程技术网

如何将大型Django项目划分为子项目进行扩展?

如何将大型Django项目划分为子项目进行扩展?,django,git,project,scaling,divide,Django,Git,Project,Scaling,Divide,Django项目(电子商务网站),我们需要将其分为买方、卖方和管理员三个子项目,并相应地创建三个数据库。那么,如果在一个项目中更新相同的模型(模式),我们如何在三个项目中管理它呢?Django支持同一项目的多个数据库功能 这可以通过在settings.py中定义多个数据库属性来实现 DATABASES = { 'default': {}, 'buyer': { 'NAME': 'buyer', 'ENGINE': 'django.db.backen

Django项目(电子商务网站),我们需要将其分为买方、卖方和管理员三个子项目,并相应地创建三个数据库。那么,如果在一个项目中更新相同的模型(模式),我们如何在三个项目中管理它呢?

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': ''
    }
}
还需要定义路由器。

也可以使用关键字通过手动选择数据库 例如

当然,多数据库也有一些限制,例如

  • 跨数据库关系

    Django目前不支持外键或多对多 跨多个数据库的关系

  • contrib应用程序的行为

    一些contrib应用程序包括模型,一些应用程序依赖于其他应用程序。由于不可能存在跨数据库关系,因此对如何跨数据库拆分这些模型产生了一些限制:

有关更多详细信息,请访问官方链接:


为项目的公共部分创建回购协议,并将其添加到需求中。pip?@BearBrown我们谈论的是模型和网站性能等,而不是软件包安装。我的意思是您可能需要
## fetch
Customer.objects.using('customers').all()
## save
customer_obj.save(using='customers')