Переход на новый сервер — ошибка с базой данных

Мы пытаемся перенести всё на новый сервер. После миграции сверху появляется следующее сообщение:

Когда я пытаюсь выполнить следующее внутри приложения:

  # sudo ./launcher enter app
  # rails c
  > user = User.find_by_email("<admin_email>")
  > user.admin = true
  > user.save`

Получаю следующую ошибку:

ActiveModel::MissingAttributeError: can’t write unknown attribute ``
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activemodel-6.0.2.2/lib/active_model/attribute.rb:206:in with_value_from_database' Caused by ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR: zero-length delimited identifier at or near """" LINE 1: ... = '2020-04-23 16:30:36.173916' WHERE "site_settings"."" = 3 ^ from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.0.1/lib/patches/db/pg.rb:69:in exec_params’
Caused by PG::SyntaxError: ERROR: zero-length delimited identifier at or near “”“”
LINE 1: … = ‘2020-04-23 16:30:36.173916’ WHERE “site_settings”.“” = 3
^
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.0.1/lib/patches/db/pg.rb:69:in `exec_params’

Есть ли какие-либо идеи, как завершить установку? Возможно, таблица повреждена.

Можете ли вы уточнить, что именно вы пытаетесь сделать? Это происходит до восстановления резервной копии или после? Или это новая установка?

Выполненные нами шаги:

  1. Установлена последняя версия на новый сервер
  2. Старый сервер переведен в режим только для чтения, создана резервная копия
  3. Резервная копия восстановлена на новом сервере

Ошибка возникает после шага 3, и мы повторили процесс дважды.

Указан ли ваш email разработчика в app.yml? Пробовали ли вы уже пересобрать контейнер?

Да. Discourse работает корректно без импорта миграций. Ошибок нет. После восстановления резервной копии базы данных настройки изменить нельзя — возникает ошибка, а при попытке активировать email разработчика письмо не отправляется. Вот почему я пытался активировать аккаунт вручную, но тогда столкнулся с этой ошибкой.

Вы выполнили ./launcher rebuild app после восстановления резервной копии? Или зашли в контейнер и запустили rake db:migrate? Это может помочь, но точно сказать сможем только после попытки :smiley:

Я уже запускал приложение для восстановления лаунчера, но проблема осталась. Запускать rake нужно с сервера или внутри приложения (launcher enter app)?

./launcher rebuild app сделает то же самое.

У вас всё ещё запущен предыдущий экземпляр? Если да, то лучшее решение на будущее — уничтожить новый и пересоздать его с помощью свежей резервной копии из старого экземпляра.

Да, предыдущий сервер всё ещё работает. После более глубокого изучения проблемы выяснилось, что это происходит даже на старом сервере. Появляется та же ошибка. :face_with_raised_eyebrow:

Стоит ли мне попробовать очистить таблицу site_settings и вручную заново настроить параметры? Будет ли Discourse работать после того, как я вручную удалю все записи из этой таблицы в PostgreSQL?

Я бы воздержался от этого, если только вы не знаете, что делаете.

Возможно, стоит написать в Marketplace для получения более продвинутой помощи. К сожалению, похоже, что у вас повреждена установка.