【发布时间】:2022-08-08 00:37:33
【问题描述】:
我是 SpringBoot 的新手。我正在尝试创建一个使用 docker 运行的 spring boot 应用程序。当我运行这个应用程序时,我收到以下错误
org.postgresql.util.PSQLException: FATAL: role \"amigoscode\" does not exist
我没有任何提示,因为我无法追踪此错误。角色“amigoscode”已经存在。我附在 application.yml 和 docker-compose.yml 下面
应用程序.yml
server:
port: 8080
spring:
application:
name: customer
datasource:
password: password
url: jdbc:postgresql://localhost:5432/customer
username: amigoscode
jpa:
hibernate:
ddl-auto: create-drop
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
format_sql: \'true\'
show-sql: \'true\'
码头工人-compose.yml
services:
postgres:
container_name: postgres
image: postgres
environment:
POSTGRES_USER: amigoscode
POSTGRES_PASSWORD: password
PGDATA: /data/postgres
volumes:
- postgres:/data/postgres
ports:
- \"5432:5432\"
networks:
- postgres
restart: unless-stopped
pgadmin:
container_name: pgadmin
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
PGADMIN_CONFIG_SERVER_MODE: \'False\'
volumes:
- pgadmin:/var/lib/pgadmin
ports:
- \"5050:80\"
networks:
- postgres
restart: unless-stopped
networks:
postgres:
driver: bridge
volumes:
postgres:
pgadmin:
你能指导我吗,我在这里可能做错了什么?我在这里提到了其他类似的问题,但没有一个能解决我的问题。谢谢你。
-
\"角色\"amigoscode\"已经存在\"不,它不存在。 PostgreSQL 不会对此撒谎。如果您的持久卷已经有一个数据库,那么它会被重用,而不是重新创建。如果重用,则 POSTGRES_USER 将被忽略。
-
@jjanes你能告诉我,我在这里做错了什么吗?我无法理解这一点。
-
你解决了吗?
-
@jjanes 那又怎样?解决方案在哪里?
-
@AnkitOstwal 伙计们,您必须逐步调试,没有人能猜到您的设置中发生了什么。首先,我会进入数据库并检查用户和角色是否真的存在。只需谷歌“psql 列表用户/角色”。如果他们这样做了,那么值得更多地关注 Spring 配置。最好从一个干净的环境开始。
标签: postgresql spring-boot docker docker-compose