Google Cloud Run: Не удается подключиться к Postgress SQL

Я следую этому руководству для загрузки моего существующего проекта Django, работающего локально на sqlite, в Google Cloud Run / Postgres.

У меня запущена служба cloud_sql_proxy и я могу войти в Postgres из командной строки.

Я нахожусь на этапе выполнения команды

python manage.py migrate

И я получаю ошибку:

django.db.utils.OperationalError: connection to server on socket "/cloudsql/cgps-registration-2:us-central-1:cgps-reg-2-postgre-sql/.s.PGSQL.5432" failed: No such file or directory
        Is the server running locally and accepting connections on that socket?

Ответ на этот вопрос - Да, сервер работает локально и принимает соединения, потому что я могу войти в систему с помощью клиента Postgres:

agerson@agersons-iMac ~ % psql "sslmode=disable dbname=postgres user=postgres hostaddr=127.0.0.1"  
Password for user postgres: 
psql (14.1, server 13.4)
Type "help" for help.

postgres=> 

Я дважды проверил строку подключения в моем файле .env, и она имеет правильное значение UN / P

Не создается ли этот scoket каким-то образом на предыдущем шаге?

/cloudsql/cgps-registration-2:us-central-1:cgps-reg-2-postgre-sql/.s.PGSQL.5432

Похоже, что существует несоответствие между тем, что ищет приложение, и тем, как вы запускаете прокси. Ошибка объясняет проблему.

Вы запускаете прокси следующим образом с неправильным именем региона (us-central):

cloud_sql_proxy -instances="cgps-registration-2:us-central:cgps-reg-2-postgre-sql=tcp:5432

Но приложение ищет us-central1. Попробуйте следующее (опуская =tcp:5432 для создания сокета Unix):

cloud_sql_proxy -instances="cgps-registration-2:us-central1:cgps-reg-2-postgre-sql

Кроме того, если вы используете pg14 (похоже, что вы используете pg13), в настоящее время в API есть ошибка, которая препятствует соединению с сокетом Unix. Подробнее см. в отслеживании проблемы. Другие версии postgres не затронуты.

Вернуться на верх