Раньше я успешно мигрировал форум на Discourse с помощью пользовательского скрипта, но теперь при повторном запуске получаю следующую ошибку импорта:
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/connection_adapters/postgresql_adapter.rb:81:in `rescue in new_client': Мы не смогли найти вашу базу данных: discourse. Она должна быть указана в файле конфигурации базы данных, расположенном по адресу config/database.yml. (ActiveRecord::NoDatabaseError)
Чтобы решить эту проблему:
- Создали ли вы базу данных для этого приложения или удалили её? Возможно, вам потребуется создать базу данных.
- Изменилось ли имя базы данных? Проверьте, что в конфигурации database.yml указано правильное имя базы данных.
Чтобы создать базу данных, выполните:
bin/rails db:create
./launcher enter app
cd /var/www/discourse
bundle exec ruby script/import_scripts/avatar.rb
Однако я не совсем понимаю суть ошибки: я могу подключиться к базе данных через sudo -u postgres psql discourse, что подтверждает существование базы данных «discourse». Кроме того, сайт работает нормально. При запуске rails c я также могу получить доступ к данным.
Discourse не может найти свою базу данных. Вам нужно это исправить. Это была стандартная установка или установка для разработки? Изучите соответствующее руководство и в первую очередь настройте работу Discourse.
Единственное, что я сделал (на что могу сейчас вспомнить) с момента, когда всё работало в последний раз, — это откатился к резервным копиям.
Что меня сбивает с толку в этой ошибке, так это то, что всё остальное работает. Сайт функционирует идеально. Сбой происходит только при запуске скрипта импорта.
Я перезагрузил систему, но это не помогло. Теперь я сталкиваюсь с той же проблемой и на локальной машине (локальный Docker)… что заставляет меня думать, что я каким-то образом неправильно выполняю команду…
И спасибо – я восхищаюсь скоростью ваших ответов и поддержкой!