簡體   English   中英

在 AWS 上初始化 Prisma 2 + Postgres docker 時出錯

[英]Error when initializing Prisma 2 + Postgres docker on AWS

我一直在嘗試使用 Prisma 2、Postgres 和我在 AWS EC2 上的后端服務創建一個容器。 即使在npx prisma migrate --dev init --name --preview-feature命令添加到我的 Prisma Dockerfile 之后,我在我的 Postgres 數據庫服務中看到一個錯誤:

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] 不存在的錯誤)。 我的后端和棱鏡圖像托管在 Amazon ECR 上。 此外,由於我在 postgres 服務中指定 POSTGRES_USER,我應該創建一個具有 CREATEDB 權限的用戶,所以我認為我不應該在此討論中突出顯示影子數據庫問題: https://github.com/prisma/prisma/問題/4571

棱鏡服務 Dockerfile:

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:

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 Studio 或查詢我的后端服務時看到不同的錯誤。 這是我的目錄的布局:

  • ./[Backend_Service_Dockerfile]
  • ./prisma/遷移
  • ./prisma/[Prisma_Service Dockerfile]
  • ./docker-compose.yml

我是否可能必須鏈接我的卷以包含 prisma 文件夾? 或者我在這里錯過了什么? 我已經堅持了幾天,所以任何幫助都會很棒!

我通過在遷移之前刪除npx prisma generate解決了這個問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM