Discourse가 실행되지 않을 때 데이터베이스에 액세스

위험!!

이 작업은 설치 환경을 손상시킬 수 있지만, 문제를 해결하는 데 도움이 될 수 있습니다.
이 지침을 매우 신중하게 사용하세요.

어떤 이유로든 ./launcher rebuild app 명령으로 discourse 컨테이너를 실행할 수 없고, 문제를 해결하기 위해 데이터베이스에 접근해야 한다면 이 지침을 시도해 보세요.

이 기법은 Postgres의 Docker 이미지를 사용하여 설치된 Discourse의 볼륨에 접근합니다. Discourse가 실행 중인 동안에는 이 작업을 수행하지 마세요!

이 방법은 discourse가 /var/discourse에 설치되어 있고, 명령줄을 통해 Postgres를 조작하는 방법을 알고 있다고 가정합니다.

‘mysecretpassword’를 더 안전한 값으로 변경하세요.

# 사용 중인 Discourse 버전에 맞는 이미지를 가져옵니다.
docker pull postgres:15
        
# 컨테이너를 시작하고 로컬 데이터베이스 파일로 방향을 지정합니다.
docker run --name postgres_container -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 -v /var/discourse/shared/standalone/postgres_data:/var/lib/postgresql/data postgres:15
        
 # 컨테이너에 진입합니다
 docker exec -it postgres_container /bin/bash
        
 # 컨테이너 내부에서:
 su postgres
        
 # db 클라이언트를 실행합니다
 psql
        
 # 필요에 따라 데이터베이스를 정리하세요.

# 완료 후:
docker stop postgres_container
docker rm postgres_container
docker rmi postgres:15

discourse를 다시 시작하기 전에 docker를 다시 시작해야 할 수 있습니다.

service restart docker.
3개의 좋아요