首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AWS上初始化Prisma 2+ Postgres停靠程序时出错

在AWS上初始化Prisma 2+ Postgres停靠程序时出错
EN

Stack Overflow用户
提问于 2021-04-06 02:23:24
回答 1查看 547关注 0票数 1

我一直试图用Prisma 2、Postgres和我在AWS EC2上的后端服务创建一个容器。即使将npx prisma migrate --dev init --name --preview-feature命令添加到我的Prisma中,我仍然看到Postgres数据库服务中出现了一个错误:

代码语言:javascript
复制
ERROR:  relation "_prisma_migrations" does not exist at character 126
STATEMENT:  SELECT "id", "checksum", "finished_at", "migration_name", "logs", "rolled_back_at", "started_at", "applied_steps_count" FROM "_prisma_migrations" ORDER BY "started_at" ASC

我附上了我的Prisma 2 Dockerfile和我的docker-compose.yml文件,并希望在试图解决这个问题时能得到一些帮助。我甚至尝试使用npx prism migrate deploy命令,但这没有起作用(关于不存在的public.table_name_1有一些错误)。我的后端和prisma图像托管在Amazon上。此外,由于我在postgres服务中指定了POSTGRES_USER,所以我应该创建一个具有CREATEDB特权的用户,这样我就不应该在讨论中突出显示影子数据库问题:https://github.com/prisma/prisma/issues/4571

Prisma服务Dockerfile:

代码语言:javascript
复制
FROM node:12.18-alpine
ENV NODE_ENV=production
WORKDIR /usr/src/app
RUN npm install -g --unsafe-perm prisma
COPY ./ ./prisma
EXPOSE 5555
RUN npx prisma generate
CMD ["sh", "-c", "npx prisma migrate dev --name init --preview-feature && npx prisma studio"]

docker-compose.yml:

代码语言:javascript
复制
version: '3.4'
services:
  db:
    container_name: db
    ports:
      - 5432:5432
    image: postgres:latest
    environment:
      - POSTGRES_USER=[user]
      - POSTGRES_PASSWORD=[password]
      - POSTGRES_DB=[db_name]
    volumes:
      - my-vol:/var/lib/postgresql/data/
  backend:
    depends_on:
      - db
    container_name: backend
    ports:
      - 4000:4000
    image: [backend image name]
  prisma:
    depends_on:
      - db
    container_name: prisma
    ports:
      - 5555:5555
    image: [prisma image name]
    environment:
      NODE_ENV: production
volumes:
  my-vol:

我可以确认npx prisma migrate dev --name init --preview-feature在运行,因为我看到Prisma服务日志中应用了迁移。当我没有在我的Dockerfile中包含这个命令时,当我打开Prisma或查询我的后端服务时,我会看到一个不同的错误。这是我的目录的布局:

  • ./Backend_Service_Dockerfile
  • ./prisma/migrations
  • ./prisma/Prisma_Service Dockerfile
  • ./docker-compose.yml

我是否需要链接我的音量来包含prisma文件夹?还是我在这里漏掉了什么?我已经被困在这几天了,所以任何帮助都会很棒!

EN

回答 1

Stack Overflow用户

发布于 2022-07-20 16:19:40

我通过在迁移之前移除npx prisma generate来解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66961966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档