![](/img/trans.png)
[英]org.postgresql.util.PSQLException: FATAL: database “postgres>” does not exist
[英]org.postgresql.util.PSQLException: FATAL: role "amigoscode" does not exist
我是 SpringBoot 的新手。 我正在嘗試創建一個 spring 啟動應用程序,我正在使用 docker 運行它。 當我運行這個應用程序時,我收到以下錯誤
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'
docker-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:
你能指導我嗎,我在這里可能做錯了什么? 我在這里提到了其他類似的問題,但沒有一個能解決我的問題。 謝謝你。
當您運行 Postgres 容器並將POSTGRES_USER
作為環境變量傳遞時,會運行一個初始化腳本來創建用戶。 但是,如果文件夾(postgres 卷)已經包含來自舊運行的數據,則會跳過初始化並且不會創建用戶。 嘗試使用新卷並在 postgres 容器啟動時檢查日志。
您的堆棧使用卷postgres
定義變量POSTGRES_USER
和POSTGRES_PASSWORD
。 postgres
容器只會在第一次啟動時創建這些用戶,但是這個卷之前是否已經創建過,它將重新使用現有數據
您可能已經使用此卷運行了postgres
容器,在這種情況下,您需要刪除它然后重新創建它,例如:
# WARNING: this will delete all containers and volumes
# including pg_data volume and pgadmin volume
# make sure to make a backup if needed
docker-compose down -v
然后重新創建您的容器和卷(以及必要時的其他組件):
docker-compose up -d
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.