我有一个问题连接到使用Prisma的云运行的Cloud SQL
我正在使用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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论