インポート/移行スクリプトの実行で問題が発生

以前、カスタムスクリプトでフォーラムを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': We could not find your database: discourse. Which can be found in the database configuration file located at config/database.yml. (ActiveRecord::NoDatabaseError)

To resolve this issue:

- Did you create the database for this app, or delete it? You may need to create your database.
- Has the database name changed? Check your database.yml config has the correct database name.

To create your database, run:

        bin/rails db:create

スクリプトの以下のインポートが失敗します。

require File.expand_path(File.dirname(__FILE__) + "/base.rb")

スクリプトは以下のように実行しています。

./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 を動作させてください。

標準インストールで、discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub に従っています。

前回動作していた時から行ったこと(現時点で思いつくこと)は、バックアップへのロールバックのみです。

エラーで混乱しているのは、他のすべてが機能していることです。サイトは完全に正常に動作しています。インポートスクリプトのみが失敗します。

そして、コンテナ内でスクリプトを実行していますか?

はい、./launcher enter app を使用しており、設定は (app) の1つだけです。

ああ。すみません。すべてOPで言っていましたね。よく読んでいませんでした!

説明は思いつきません。再起動してみてはどうでしょうか?

再起動しましたが、問題は解決しませんでした。ローカルマシン(ローカルDocker)でも同じ問題が発生しています…コマンドの実行方法が間違っているのかもしれません…

迅速なご対応とサポートに感謝いたします!

はい、これで理解できました。discourse ユーザーではなく、root としてスクリプトを実行していました。

./launcher enter app
cd /var/www/discourse
su discourse
bundle exec ruby script/import_scripts/import.rb

サポートありがとうございました @pfaffman :heart:

「いいね!」 3

うーん。何か変更があったのかもしれません。Discourse を使用してインポート スクリプトを実行したことがないことは確かです。よくできました!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.