サイト設定の更新時、エラー:ゼロ長さの区切り識別子

管理者画面で、オレンジ色や黄色に変色したフィールドを変更することができません。つまり、まだ更新されていない項目を一度だけ保存できる状態です。問題の原因として考えられることはありますか?

セーフモードでも問題は続きますか?

yoursiteurl.com/safe-mode

はい、セーフモードでもエラーが発生します

Cloudflare の背後にいますか?

はい、Cloudflare を使用しています :face_with_raised_eyebrow:

フォーラムでこれを何らかの方法で無効にするべきでしょうか?

Cloudflare がこのような問題を引き起こすことは、長い間繰り返されてきました。

無効にして、問題が解消されるか確認してください。

もし CF の「最適化」を 必要 とする場合は、Meta で CF のすべての「最適化」を無効にする方法を検索してください。

エイリアスがダーククラウドで設定されていますが、これで問題はまだ発生しますか?

image

いいえ、CFが無効化されていることを意味します。それは :+1: です。

つまり、問題の原因は CF ではありません。

余談ですが、ブラウザの問題ではないことを確認するため、Chrome と Firefox の両方から試してみました。

その場合、管理者として /logs URL パスを確認して、エラーがないか確認してください。

実際のエラーを確認するために、開発者ツールを使用できますか?

インストールされているプラグインはどれですか?

ログを確認したところ、設定のリセット後にいくつかのエラーが発生しています:

Job exception: PG::SyntaxError: ERROR: zero-length delimited identifier at or near """" LINE 1: ...'2020-04-14 17:11:33.973774' WHERE "site_settings"."" = 1697		7:11 pm
Job exception: PG::SyntaxError: ERROR: zero-length delimited identifier at or near """" LINE 1: ...'2020-04-14 17:27:06.173173' WHERE "site_settings"."" = 1697		7:27 pm
ActiveRecord::StatementInvalid (PG::SyntaxError: ERROR: zero-length delimited identifier at or near """" LINE 1: ...'2020-04-14 17:39:16.098301' WHERE "site_settings"."" = 1700		7:39 pm
Failed to handle exception in exception app middleware : PG::SyntaxError: ERROR: zero-length delimited identifier at or near """" LINE 1: ...'2020-04-14 17:39:16.098301' WHERE "site_settings"."" = 17

このエラーが原因で、別のサーバーへの移行ができなくなっているようです。

このデータベースの問題を解決する方法について、何かアイデアはありますか?

テーブルにインデックスが存在することは確認できます。ほかに考えられることはありますか?

以下のクエリを PostgreSQL で直接実行すると、

UPDATE "site_settings" SET "value" = 'Community Forum 2', "updated_at" = '2020-04-24 07:02:39.023579' WHERE "site_settings"."" = 20)

以下のエラーが発生します。

**SQL エラー:**

ERROR: zero-length delimited identifier at or near """" LINE 1: ... '2020-04-24 07:02:39.023579' WHERE "site_settings"."" = 20)

テーブルを修正・比較することで、手動で問題が解決されました。

明らかに WHERE "site_settings"."id" = 20 であるべきです。Rails でスキーマの読み込みに何か問題があったようです。

その通りです。site_settings テーブルのインデックスに問題があり、ダンプとバックアップの復元が簡単ではありませんでした :slight_smile: