您好,
我大概一年后进行了一次更新,这导致了从 pg 13 升级到 15。
我尝试使用我自己的 LC_LANG 运行给出的命令,但它不起作用,我得到了 FATAL: data directory “/shared/postgres_data” does not exist。它确实不存在……有人有什么主意吗?
您好,
我大概一年后进行了一次更新,这导致了从 pg 13 升级到 15。
我尝试使用我自己的 LC_LANG 运行给出的命令,但它不起作用,我得到了 FATAL: data directory “/shared/postgres_data” does not exist。它确实不存在……有人有什么主意吗?
应该有一个 /shared/postgres_old。
更改您的 LC_LANG 可能是个坏主意。
我实际上遇到了和你一样的错误:“/bin/bash: warning: setlocale: LC_ALL: cannot change locale”,这是我在运行 launch rebuild app 时遇到的,最终让我找到了这篇帖子,你最后解决它了吗?如上所述,docker run 命令给我带来了更多问题。
我添加了一个映射 \-v /var/discourse/shared/standalone:/shared,现在有了一些进展。奇怪的是它不在那里。问题可能在于我的“应用”仍然停留在 2024 年的某个版本,并且“重建”不起作用。只是猜测……
所以我的 app.yml 中有这个,它运行正常:
env:
LC_ALL: fr_BE.UTF-8
LANG: fr_BE.UTF-8
LANGUAGE: fr_BE.UTF-8
我指的是 LANG 而不是 LC_LANG。问题是,如果我现在恢复到其他任何设置,就“太晚了”。我尝试了 en_US.UTF_8 没有任何效果,重建总是失败。
如果您没有当前的备份,并且无法重启旧的容器,那么我建议您切换到 PG13 模板并建立一个可用的设置,然后进行备份,接着在新服务器上设置并恢复备份。当数据库为空时,您可以用任何喜欢的语言进行设置,然后进行恢复(也许语言会自动转换?)。
迁移到新服务器可以确保您不会使现有服务器崩溃。
很遗憾,我已处于崩溃状态。我有备份,但我无法恢复它们,因为版本更改太大,并且存在 gem 依赖问题。我也无法恢复到旧版本,因为启动器会自动拉取,我认为这有点令人沮丧。
使用 LC_ALL 我得到:
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups.rb
/usr/local/bin/pups --stdin
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_BE.UTF-8)
I, [2025-12-02T15:46:29.638999 #1] INFO -- : Reading from stdin
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/cli.rb:59:in `split’: invalid byte sequence in US-ASCII (ArgumentError)
split = conf.split("_FILE_SEPERATOR_")
^^^^^^^^^^^^^^^^^^
from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/cli.rb:59:in `run'
from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/bin/pups:9:in `<top (required)>'
from /usr/local/bin/pups:25:in `load'
from /usr/local/bin/pups:25:in `<main>'
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
19a63b958021df0ecbc7e21bfea95f1c5ef7b039efd669b5d4af48b05d397a58
如果我删除 LC_ALL,那么“./launcher rebuild app”会停在:
Performing Consistency Checks
Checking cluster versions ok
Checking database user is the install user ok
Checking database connection settings ok
Checking for prepared transactions ok
Checking for system-defined composite types in user tables ok
Checking for reg* data types in user tables ok
Checking for contrib/isn with bigint-passing mismatch ok
Checking for user-defined encoding conversions ok
Checking for user-defined postfix operators ok
Checking for incompatible polymorphic functions ok
Checking for not-null constraint inconsistencies ok
Creating dump of global objects ok
Creating dump of database schemas ok
lc_collate values for database “template1” do not match: old “fr_BE.UTF-8”, new “en_US.UTF-8”
使用帖子顶部提到的“手动”docker 命令,我还必须将 /etc/postgresql 中的内容链接到 /var/…,因为缺少一些文件,最终得到了与上面相同的错误。
我将尝试在新安装中恢复。
我怀疑版本更改太大是事实。您是否设置了新服务器并尝试恢复该备份?我恢复过比站点创建时间早好几年的备份。我相当确定这会奏效。我每月都会将站点迁移到新服务器几次。唯一出现问题的时候是索引损坏,这种情况我已经很久没遇到了。
您是否尝试将 postgres_old 重命名为 postgres_data 并运行
./launcher start app
哦。那是个好主意!这就是我应该在回复前阅读完整帖子的原因。![]()
我确认新的安装在设置了 LC_ALL 的情况下也会中断,方式与上面显示的一样(\FILE_SEPERATOR\ …)。但是如果没有设置 LC_ALL 就没问题。
我已在新安装的最新 master 版本上恢复了我的保存,谢谢。修复这些问题仍然是个谜……
太棒了!
我已将此内容移至新主题。如果我的回复之一是解决方案,请将其标记,以便此主题可以自动关闭。