위험!!
이 작업은 설치 환경을 손상시킬 수 있지만, 문제를 해결하는 데 도움이 될 수 있습니다.
이 지침을 매우 신중하게 사용하세요.
어떤 이유로든 ./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.