如何解决如何在 Dockerized GraphQL + Postgres 设置中运行 Prisma 迁移? docker-compose.ymlDockerfile
我不熟悉使用 Prisma 以及 Dockerizing 我的设置。我想使用 Prisma 指定我的数据模型,将 Postgres 作为我的数据库,并在 GraphQL API(我当前的 API 使用 apollo-server-express
)中使用它,该 API 还处理身份验证和角色等。
我现在拥有的是一个简单的 docker-compose.yml
和一个 Dockerfile
GraphQL API:
docker-compose.yml
services:
api:
build: ./api
env_file:
- .env
volumes:
- ./api:/usr/src/app
ports:
- ${API_PORT}:${API_PORT}
command: npm start
Dockerfile
# Latest LTS version
FROM node:14
# Set default values for environment variables
ENV API_PORT=3001
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
COPY package*.json ./
RUN npm install
# Bundle app source
COPY . .
# Bind port
EXPOSE ${API_PORT}
# Start server
CMD ["npm","start"]
我将如何在此设置中使用 Prisma 和 Postgres,其中迁移以某种容器化方式发生,而不是我在 CLI 中手动执行 Prisma 命令?
感谢指出我的误解、提示或反馈!谢谢
解决方法
您需要在启动 nextjs 应用程序之前运行迁移。有几种方法可以做到这一点。有些人将此作为此 CI/CD 脚本的一部分。在您使用 docker compose 的情况下,您可以更改启动命令以在启动应用程序之前运行运行迁移的脚本。
首先,创建你的 bash 脚本
npx prisma migrate deploy
npm start
然后更改您的 Dockerfile
以运行脚本
CMD ["startup.sh"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。