django - 谷歌云运行 : Cant connect to Postgress SQL

标签 django postgresql google-cloud-platform google-cloud-sql

我正在关注 this tutorial将我在 sqlite 上本地运行的现有 Django 项目上传到 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

关于django - 谷歌云运行 : Cant connect to Postgress SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70672368/

相关文章:

node.js - 检查云任务队列是否为空

google-compute-engine - 阻止来自 Google 计算实例的违规 IP

Django 删除多个 m2m 关系而不循环

python - 在 Django Admin 中更新表关系

python - Django 管理器链接

postgresql - 将时间戳与纪元秒进行比较

google-cloud-platform - BigQuery - 在哪里可以找到错误流?

python - django-rest-framework 反序列化请求以使用用户外键创建对象

sql - 如何在 Rails 中使用带有 order 子句的 postgres AVG() 函数

sql - Postgres 多对多关系 : finding rows all having relation to a set of rows from related table