Django-使用多个数据库,每个客户端一个

时间:2018-07-03 14:01:17

标签: django django-models database-design django-rest-framework database-connection

我正在为现有Web应用程序构建伴随的Web /移动应用程序。该数据库在MySQL中实现。我将使用Django / Django Rest Framework(DRF)编写API。

该应用程序被各种组织使用。关于实现的有趣部分是每个组织都有自己的数据库。在现有的Web应用程序中,用户输入数据库名称以及登录凭据。

如何在Django中实现呢?我将有很多模型-它们都需要根据当前用户从正确的数据库中读取。

1 个答案:

答案 0 :(得分:0)

在settings.py

DATABASES = {
    'default': {},
    'database_one': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db1',
        'PORT': '3306',
        'HOST': '127.0.0.1',
        'USER': 'db1_user',
        'PASSWORD': 'db1_pwd'
    },
    'database_two': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db2',
        'PORT': '3306',
        'HOST': '127.0.0.1',
        'USER': 'db2_user',
        'PASSWORD': 'db2_pwd'
    }
}

要同步数据库,您应该这样做:

python manage.py migrate
python manage.py migrate --database=database_one
python manage.py migrate --database=database_two

第一个命令在默认数据库上运行,并且使用--database选项,您可以操作所需的数据库。

更多信息。可以在这里找到:https://docs.djangoproject.com/en/2.0/topics/db/multi-db/