こんにちは。
おそらく1年ぶりにアップデートを実行したところ、pg 13から15に移行しました。
自分のLC_LANGで指定されたコマンドを実行しようとしましたが、機能せず、FATAL: data directory “/shared/postgres_data” does not exist というエラーが出ます。そして、実際にはそのディレクトリは存在しません… 何かアイデアはありますか?
こんにちは。
おそらく1年ぶりにアップデートを実行したところ、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
私が言いたかったのは LC_LANG ではなく 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
を試しましたか?
ああ。それは良い考えですね!だから、返信する前に投稿全体を読むべきなんですね。![]()
新しいインストールでも、上記に示されているのと同じ方法で(_FILE_SEPARATOR_…)、LC_ALLを設定すると壊れることを確認できます。ただし、LC_ALLを設定しない場合は問題ありません。
最新のマスターで新しいクリーンインストールを行い、セーブデータを復元できました。これらの問題が修正されるかどうかは謎のままです…
素晴らしい!
これを新しいトピックに移動しました。もし私の返信のいずれかが解決策であった場合は、それをマークしていただけると、自動的にクローズできるようになります。