Когда я пытаюсь выполнить следующее внутри приложения:
# 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’
Есть ли какие-либо идеи, как завершить установку? Возможно, таблица повреждена.
Да. Discourse работает корректно без импорта миграций. Ошибок нет. После восстановления резервной копии базы данных настройки изменить нельзя — возникает ошибка, а при попытке активировать email разработчика письмо не отправляется. Вот почему я пытался активировать аккаунт вручную, но тогда столкнулся с этой ошибкой.
Вы выполнили ./launcher rebuild app после восстановления резервной копии? Или зашли в контейнер и запустили rake db:migrate? Это может помочь, но точно сказать сможем только после попытки
Я уже запускал приложение для восстановления лаунчера, но проблема осталась. Запускать rake нужно с сервера или внутри приложения (launcher enter app)?
У вас всё ещё запущен предыдущий экземпляр? Если да, то лучшее решение на будущее — уничтожить новый и пересоздать его с помощью свежей резервной копии из старого экземпляра.
Да, предыдущий сервер всё ещё работает. После более глубокого изучения проблемы выяснилось, что это происходит даже на старом сервере. Появляется та же ошибка.
Стоит ли мне попробовать очистить таблицу site_settings и вручную заново настроить параметры? Будет ли Discourse работать после того, как я вручную удалю все записи из этой таблицы в PostgreSQL?