我有一个问题连接到使用Prisma的云运行的Cloud SQL

发布于 2025-02-12 15:49:52 字数 1766 浏览 1 评论 0原文

我正在使用Nestjs作为Prisma的后端。

Cloud SQL Postgres

我有一个像这样的码头文件,

FROM node:16

WORKDIR /
COPY package*.json ./

RUN npm install

RUN apt-get update \
  && apt-get install --no-install-recommends -y \
    wget \
  ;
RUN wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
RUN chmod +x cloud_sql_proxy


COPY . .

ENV DATABASE_URL="postgresql://USER:PASSWORDH@localhost/postgres?host=/cloudsql/CLOUD_SQL_CONNECTION_NAME/.s.PGSQL.5432"

ENV ENVIRONMENT="prod"
ENV DB_USER="DATABASE"
ENV DB_PASS="PASSWORD"
ENV DB_NAME="postgres"
ENV CLOUD_SQL_CONNECTION_NAME="CLOUD_SQL_CONNECTION_NAME"


RUN npx prisma generate
RUN npx prisma migrate deploy
RUN npm run build

EXPOSE 8080

CMD ["sh", "-c", "./cloud_sql_proxy -instances=$CLOUD_SQL_CONNECTION_NAME=tcp:0.0.0.0:5432 & npm run start:prod"]

我搜索了Internet寻求解决方案,但没有发现!

错误

Step #0 - "Build": Error: P1001: Can't reach database server at `/cloudsql/CONNECTION_NAME/.s.PGSQL.5432`:`5432`
Step #0 - "Build": 
Step #0 - "Build": Please make sure your database server is running at `/cloudsql/CONNECTION_NAME/.s.PGSQL.5432`:`5432`.
Step #0 - "Build": The command '/bin/sh -c npx prisma migrate deploy' returned a non-zero code: 1

有帮助吗?

我花了很多时间尝试解决此错误!

更新! 我创建了一个具有相同设置(和相同Dockerfile)的简单项目,并将其部署到云运行中。在这个项目中,我没有使用Prisma,并且能够连接到Cloud SQL。我认为Prisma有一些问题,而且我确实看到了他们的Github仓库中的一个问题。

有关问题的更多信息 https://github.com/prisma/prisma/prisma/prisma/sissues/1508

我正在考虑现在切换到TypeOmm。

因此,结论是,Prisma无法连接到Cloud SQL。那里可能有一个解决方案,但我已经完成了,并且将使用TypeOmm。我已经在使用Nestjs,它们对TypeForm有很好的支持

I am using Nestjs for the backend with Prisma.

Cloud SQL Postgres

I have a Dockerfile like this

FROM node:16

WORKDIR /
COPY package*.json ./

RUN npm install

RUN apt-get update \
  && apt-get install --no-install-recommends -y \
    wget \
  ;
RUN wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
RUN chmod +x cloud_sql_proxy


COPY . .

ENV DATABASE_URL="postgresql://USER:PASSWORDH@localhost/postgres?host=/cloudsql/CLOUD_SQL_CONNECTION_NAME/.s.PGSQL.5432"

ENV ENVIRONMENT="prod"
ENV DB_USER="DATABASE"
ENV DB_PASS="PASSWORD"
ENV DB_NAME="postgres"
ENV CLOUD_SQL_CONNECTION_NAME="CLOUD_SQL_CONNECTION_NAME"


RUN npx prisma generate
RUN npx prisma migrate deploy
RUN npm run build

EXPOSE 8080

CMD ["sh", "-c", "./cloud_sql_proxy -instances=$CLOUD_SQL_CONNECTION_NAME=tcp:0.0.0.0:5432 & npm run start:prod"]

I have searched the internet for a solution but found none!

the error

Step #0 - "Build": Error: P1001: Can't reach database server at `/cloudsql/CONNECTION_NAME/.s.PGSQL.5432`:`5432`
Step #0 - "Build": 
Step #0 - "Build": Please make sure your database server is running at `/cloudsql/CONNECTION_NAME/.s.PGSQL.5432`:`5432`.
Step #0 - "Build": The command '/bin/sh -c npx prisma migrate deploy' returned a non-zero code: 1

any help?

I have spent a lot of time trying to solve this error!

UPDATE!
I created a simple project with the same settings (and the same Dockerfile) and deployed it to cloud run. In this project, I didn't use Prisma and was able to connect to Cloud SQL. I think Prisma has some issues and I do see an issue open in their Github repo.

more about the issue https://github.com/prisma/prisma/issues/1508

I am considering now switching to TypeORM.

So the conclusion is there is some problems with Prisma that it can't connect to Cloud SQL. There may be a solution out there but I am done and will use TypeORm. I am already using Nestjs and they have good support for Typeform

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文