作者:手机用户2502852637_666 | 来源:互联网 | 2022-12-03 13:33
我正在尝试实现一种微服务体系结构,其中每个微服务都具有自己的数据库。我将prisma用作服务和单个数据库服务器之间的数据访问层。由于我只有一台数据库服务器,因此我希望每个prisma实例都可以在该服务器上访问自己的数据库,但是我没有找到指定特定prisma实例使用的数据库名称的选项。
所以这是问题。有没有一种方法可以为prisma实例指定数据库名称?
docker-compose.yml
如果有用的话,这是我的文件:
version: '3'
services:
prisma:
image: prismagraphql/prisma:1.14
restart: always
ports:
- "${PRODUCT_PRISMA_PORT}:${PRODUCT_PRISMA_PORT}"
environment:
PRISMA_CONFIG: |
port: ${PRODUCT_PRISMA_PORT}
managementApiSecret: ${PRODUCT_PRISMA_SECRET}
databases:
product:
connector: postgres
host: postgres
port: 5432
user: prisma
password: prisma
migrations: true
postgres:
image: postgres:11-alpine
restart: always
environment:
POSTGRES_USER: prisma
POSTGRES_PASSWORD: prisma
volumes:
- /var/lib/postgresql/data
product-app:
command: yarn start
image: product-web
volumes:
- ./product-service:/usr/app
ports:
- "${PRODUCT_APP_PORT}:${PRODUCT_APP_PORT}"
depends_on:
- prisma
environment:
PORT: ${PRODUCT_APP_PORT}
PRISMA_ENDPOINT: ${PRODUCT_PRISMA_ENDPOINT}
Dominic..
5
尝试在配置上使用“数据库”键:
environment:
PRISMA_CONFIG: |
port: ${PRODUCT_PRISMA_PORT}
managementApiSecret: ${PRODUCT_PRISMA_SECRET}
databases:
product:
connector: postgres
host: postgres
port: 5432
user: prisma
password: prisma
migrations: true
database: ${DATABASE}
但是,请注意Prisma用于pg_advisory_lock
锁定数据库的独占访问。我从头顶上不知道这是否会阻止您在不同的PG 数据库上运行多个Prisma实例,但是我强烈建议您使用两个容器的安装程序进行尝试。如果两个容器日志Obtaining exclusive agent lock... Successful.
中均显示日志行,则该行有效。如果Obtaining exclusive agent lock...
只有一个挂起,则不会。
希望能有所帮助。
1> Dominic..:
尝试在配置上使用“数据库”键:
environment:
PRISMA_CONFIG: |
port: ${PRODUCT_PRISMA_PORT}
managementApiSecret: ${PRODUCT_PRISMA_SECRET}
databases:
product:
connector: postgres
host: postgres
port: 5432
user: prisma
password: prisma
migrations: true
database: ${DATABASE}
但是,请注意Prisma用于pg_advisory_lock
锁定数据库的独占访问。我从头顶上不知道这是否会阻止您在不同的PG 数据库上运行多个Prisma实例,但是我强烈建议您使用两个容器的安装程序进行尝试。如果两个容器日志Obtaining exclusive agent lock... Successful.
中均显示日志行,则该行有效。如果Obtaining exclusive agent lock...
只有一个挂起,则不会。
希望能有所帮助。