stympel
@stympel
подпивасник

Как подключить несколько баз данных?

Всем привет, история такая.

У меня есть две базы данных: db_1, db_2. Я хочу сделать так, чтобы все джанговские дефолтные таблицы хранились в db_1, а определенные модели сохранялись в db_2. При этом у db_2 есть два пользователя. Первый это дефолтный postgres, а второй это test_user, у которого есть разрешение только на чтение всех таблиц в db_2.

1. Как мне организовать всю эту историю в settings.DATABASES? Верна ли эта запись? Если нет, то как сделать правильно?
DATABASES = {
    'default': {
        'ENGINE': "django.db.backends.postgresql_psycopg2",
        'NAME': "db_1",
        "USER": "postgres",
        "HOST": "localhost",
        "PASSWORD": "postgres_password",
        "PORT": ""
    },
    'secondary_postgress': {
        'ENGINE': "django.db.backends.postgresql_psycopg2",
        'NAME': "db_2",
        "USER": "postgres",
        "HOST": "localhost",
        "PASSWORD": "postgres_password",
        "PORT": ""
    },
    'secondary_test_user': {
        'ENGINE': "django.db.backends.postgresql_psycopg2",
        'NAME': "db_2",
        "USER": "test_user",
        "HOST": "localhost",
        "PASSWORD": "test_user_password",
        "PORT": ""
    }
}


2. Как мне сделать сохранение определенных моделей исключительно в db_2? В интернетах куча инфы, насколько понимаю, нужно подключать роутер для БД и переписывать метод save(using="db_2") модели. Но я не совсем понял, как все должно правильно работать, так как информация, в основном, не целостная.

3. Как правильно в таком случае делать миграцию для обеих БД?
  • Вопрос задан
  • 659 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы