Django - использование нескольких баз данных, по одной для каждого клиента - PullRequest
0 голосов
/ 03 июля 2018

Я создаю сопутствующее веб / мобильное приложение для существующего веб-приложения. База данных реализована в MySQL. Я буду писать API с использованием Django / Django Rest Framework (DRF).

Приложение используется различными организациями. Интересной частью реализации является то, что каждая организация имеет свою собственную базу данных. В существующем веб-приложении пользователь вводит имя базы данных вместе с учетными данными для входа.

Как реализовать это в Django? У меня будет много моделей - и все они должны читать из правильной базы данных в зависимости от текущего пользователя.

1 Ответ

0 голосов
/ 04 июля 2018

в 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...