Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 初始化Prisma 2+时出错;美国焊接学会博士后码头工人_Postgresql_Docker_Amazon Ec2_Docker Compose_Prisma - Fatal编程技术网

Postgresql 初始化Prisma 2+时出错;美国焊接学会博士后码头工人

Postgresql 初始化Prisma 2+时出错;美国焊接学会博士后码头工人,postgresql,docker,amazon-ec2,docker-compose,prisma,Postgresql,Docker,Amazon Ec2,Docker Compose,Prisma,我一直在尝试用Prisma 2、Postgres和我在AWS EC2上的后端服务创建一个容器。即使在将npx prisma migrate--dev init--name--preview功能添加到我的prisma Dockerfile之后,我仍然在我的Postgres数据库服务中看到一个错误: ERROR: relation "_prisma_migrations" does not exist at character 126 STATEMENT: SELECT &q

我一直在尝试用Prisma 2、Postgres和我在AWS EC2上的后端服务创建一个容器。即使在将
npx prisma migrate--dev init--name--preview功能添加到我的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]不存在)。我的后端和prisma图像托管在Amazon ECR上。此外,由于我在POSTGRES服务中指定了POSTGRES_USER,因此我应该创建一个具有CREATEDB权限的用户,因此我认为我不应该在本讨论中突出显示阴影数据库问题:

Prisma服务文件:

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功能,因为我在prisma服务日志中看到了正在应用的迁移。当我没有在Dockerfile中包含此命令时,我在打开Prisma Studio或查询我的后端服务时会看到不同的错误。这是我的目录的布局:

  • ./[后端\u服务\u Dockerfile]
  • /prisma/迁移
  • /prisma/[prisma_服务文件]
  • ./docker-compose.yml
我是否需要链接我的卷以包含prisma文件夹?还是我在这里遗漏了什么?我已经被困在这两天,所以任何帮助将是伟大的