Как вы подключаетесь к Google Cloud Postgresql через фреймворк Django? - PullRequest
0 голосов
/ 02 мая 2018

Это конфигурация по умолчанию, которую можно использовать для локального соединения postgresql с использованием инфраструктуры Django в файле setting.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'LOCAL_DB_NAME',
        'USER': 'LOCAL_DB_USER',
        'PASSWORD': 'LOCAL_DB_PASS',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

Как настроить его для работы с управляемой базой данных Google Cloud Postgresql?

1 Ответ

0 голосов
/ 02 мая 2018

Прежде всего необходимо настроить конфигурацию базы данных следующим образом:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'DATABASE_NAME',
        'USER': 'DB_USER_NAME',
        'PASSWORD': 'DB_USER_PASS',
        # https://console.cloud.google.com/sql/instances
        'HOST': '<ip of your google instance>',
        'PORT': '5432', #at the moment of this writing google cloud postgresql is using the default postgresql port 5432
        'OPTIONS': {
            'sslmode': 'verify-ca', #leave this line intact
            'sslrootcert': '/your/path/to/server-ca.pem',
            "sslcert": "/your/path/to/client-cert.pem",
            "sslkey": "/your/path/to/client-key.pem",
        }
    }
}

Получить IP / имя хоста от: https://console.cloud.google.com/sql/instances

Чтобы создать и загрузить три файла pem, вам нужно посетить нечто похожее на это:
https://console.cloud.google.com/sql/instances/INSTANCE_NAME/ssl
А затем нажмите кнопку Сертификат клиента

Чтобы на самом деле разрешить удаленное подключение (если вы используете django локально для разработки), вам нужно щелкнуть справа на вкладке АВТОРИЗАЦИЯ (https://console.cloud.google.com/sql/instances/INSTANCE_NAME/authorization)) и затем ввести свой публичный ip или публичную сеть вашей организации. Только этот IP / сеть будет разрешен доступ.

Чтобы фактически сгенерировать экземпляр вместе с выбором postgresql, генерацией пользователя и пароля, вам необходимо следовать этому руководству: https://cloud.google.com/sql/docs/postgres/quickstart

Теперь обычный python manage.py makemigrations --settings=settings.my_settings должен работать просто отлично


Если вам нужно проверить соединение с помощью psql, вы можете подключиться с помощью этой команды в терминале:

psql "sslmode=verify-ca sslrootcert=/your/path/to/server-ca.pem \
sslcert=/your/path/to/client-cert.pem \
sslkey=/your/path/to/client-key.pem \
hostaddr=<ip address of google cloud instance> \
user=<your db username> dbname=<your db name>"

вам будет предложено ввести пароль

Наслаждайтесь!

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