Доступ к базе данных, когда Discourse не запущен

Осторожно!

Это может сломать вашу установку, но поможет выбраться из затруднительного положения.
Используйте эти инструкции с большой осторожностью.

Если по какой-либо причине вы не можете запустить контейнер Discourse с помощью команды ./launcher rebuild app и вам необходимо получить доступ к базе данных для решения проблемы, попробуйте следующие инструкции.

Этот метод использует Docker-образ Postgres для доступа к томику вашей установленной версии 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
        
 # Запустите клиент базы данных
 psql
        
 # Удалите базу данных по своему усмотрению.

# По завершении:
docker stop postgres_container
docker rm postgres_container
docker rmi postgres:15

Возможно, вам потребуется перезапустить Docker перед попыткой перезапуска Discourse.

service restart docker.
3 лайка