При обновлении настройки сайта: ОШИБКА: идентификатор нулевой длины

В админ-панели я не могу изменить никакие поля, которые стали оранжевыми/желтыми — другими словами, я могу сохранить изменения только один раз (для тех, которые еще не обновлены). Есть какие-либо идеи, в чем может быть проблема?

Продолжается ли проблема в безопасном режиме?

yoursiteurl.com/safe-mode

Да, в безопасном режиме ошибка сохраняется

Вы находитесь за Cloudflare?

Да, у нас есть Cloudflare :face_with_raised_eyebrow:

Не стоит ли как-то отключить это для форума?

У нас долгая история того, как Cloudflare вызывает подобные проблемы.

Попробуйте отключить его и проверьте, исчезнет ли проблема.

Если он вам необходим, поищите в Meta, как отключить все «оптимизации» CF.

Псевдоним настроен с тёмным облаком — это всё ещё вызывает проблемы?

image

Нет, это означает, что CF отключен, что :+1:

Значит, проблема не в CF.

Кстати, я пробовал и в Chrome, и в Firefox, чтобы убедиться, что дело не в браузере.

В таком случае, войдите под учетной записью администратора и проверьте путь /logs, чтобы увидеть, есть ли какие-либо ошибки.

Можете ли вы использовать инструменты разработчика, чтобы узнать, в чём именно заключается ошибка?

Какие плагины установлены?

Проверил логи — после попытки сброса настройки обнаружены ошибки:

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: