Прежде всего необходимо настроить конфигурацию базы данных следующим образом:
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>"
вам будет предложено ввести пароль
Наслаждайтесь!