危险!!
这可能会破坏您的安装,但它可能会让您摆脱困境。
请谨慎使用这些说明。
如果由于任何原因无法使用 ./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
# 运行数据库客户端
psql
# 根据需要删除数据库。
# 完成后:
docker stop postgres_container
docker rm postgres_container
docker rmi postgres:15
在尝试重新启动 discourse 之前,您可能需要重新启动 docker。
service restart docker.