将 Google App Engine 连接到 Cloud SQL (Prisma) Postgres 实例(通过 Bitbucket CI/CD)

问题描述 投票:0回答:1

我正在部署一个 Google App Engine,并连接到由 Prisma ORM 管理的 PostgreSQL CloudSQL 实例。所有这一切都是我通过 Bitbucket CI/CD 完成的。但是我在设置此连接时遇到困难。

这是我遇到的错误...(我遗漏了安全敏感变量)。该错误发生在 Atlassian 提供的 Google App Engine 部署映像的构建步骤中:https://bitbucket.org/atlassian/google-app-engine-deploy/src/master/

> prisma migrate deploy
Environment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Datasource "db": PostgreSQL database "mydatabasename", schema "public" at "localhost:5432"
Error: P1001: Can't reach database server at `/cloudsql/my-project-id:europe-west1:my-instance-name`:`5432`
Please make sure your database server is running at /cloudsql/my-project-id:europe-west1:my-instance-name`:`5432``.

我按照 Google 的以下文档:https://cloud.google.com/sql/docs/postgres/connect-app-engine-standard 通过 Unix 套接字进行连接,但没有运气。还配置了所有必要的 IAM 角色。

环境:

DATABASE_URL="postgres://username:password@localhost/dbname?host=/cloudsql/my-project-id:region:my-instance-name"

这个

DATABASE_URL
被注入到 schema.prisma 中,如下所示:

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

任何人都有部署此特定技术堆栈的经验,并且知道如何设置此连接?

google-app-engine google-cloud-sql prisma bitbucket-pipelines
1个回答
0
投票

Prisma 支持通过 Unix 套接字进行连接。

请参阅 https://www.prisma.io/docs/orm/overview/databases/postgresql#connecting-via-sockets

看起来您需要添加尾部斜杠,例如,

postgresql://USER:PASSWORD@localhost/database?host=/cloudsql/my-project-id:region:my-instance-name/
© www.soinside.com 2019 - 2024. All rights reserved.