失敗したアップデート後にサイトがダウン: "unaccent" 拡張機能の作成を拒否されました

ウェブUIからのアップグレード中にエラーが発生しました。

INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
discourse@discourse ERROR:  extension "unaccent" の作成権限がありません
discourse@discourse HINT:  この拡張機能を作成するにはスーパーユーザーである必要があります。
discourse@discourse STATEMENT:  CREATE EXTENSION IF NOT EXISTS unaccent
rake aborted!
PG::InsufficientPrivilege: ERROR:  extension "unaccent" の作成権限がありません
HINT:  この拡張機能を作成するにはスーパーユーザーである必要があります。

以前 app.yml を編集したことが原因である可能性があります。

templates:
  # ディスク容量の問題を修正するためにコメントアウトしました
  #- "templates/postgres.template.yml"
  - "templates/postgres.10.template.yml"

これは以前に行った変更なので、コメント以外は状況を覚えていません。

そのままにして、app.yml のバージョンを v2.8.0beta8 に編集して、以前の Discourse バージョンに戻そうとしましたが、これも失敗しました。

Pups::ExecError: cd /var/www/discourse & git checkout v2.8.0.beta8 はリターンコード #<Process::Status: pid 1843 exit 1> で失敗しました
失敗場所: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec はパラメータ {"cd"=>"$home", "hook"=>"code", "cmd"=>["git reset --hard", "git clean -f", "git remote set-branches --add origin main", "git remote set-branches origin $version", "git fetch --depth 1 origin $version", "git checkout $version", "mkdir -p tmp", "chown discourse:www-data tmp", "mkdir -p tmp/pids", "mkdir -p tmp/sockets", "touch tmp/.gitkeep", "mkdir -p                    /shared/log/rails", "bash -c \"touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log\"", "bash -c \"ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log $home/log\"", "bash -c \"mkdir -p           /shared/{uploads,backups}\"", "bash -c \"ln    -s           /shared/{uploads,backups} $home/public\"", "bash -c \"mkdir -p           /shared/tmp/{backups,restores}\"", "bash -c \"ln    -s           /shared/tmp/{backups,restores} $home/tmp\"", "chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp\"", "find public/plugins/ -maxdepth 1 -xtype l -delete\""} で失敗しました
ブートストラップに失敗しました。終了コード 1
** ブートストラップに失敗しました ** 上記にスクロールして、以前のエラーメッセージを探してください。複数ある可能性があります。
./discourse-doctor が問題を診断するのに役立つかもしれません。
5b66f706de1a3ce8d78f0ed886669095c1a356efd916cb2ae8b02171367b0a01

したがって、PostgreSQL 10 をアップグレードするか、Discourse を 2.8.0beta8 にダウングレードする必要があると思いますが、どちらも失敗します。どうすればよいですか?

このサーバーはどのようにインストールされましたか?

Postgresの設定を変更しましたか?

まだPostgres 10を使用している場合は、app.ymlhooks:セクションの後に以下を追加してみてください。

after_postgres:
    - exec: su postgres -c 'psql discourse -c "create extension if not exists unaccent;"'
「いいね!」 2

当方では、2020年にPostgreSQL 10から移行しました。できるだけ早くアップデートすることをお勧めします。

「いいね!」 3

それを実行する方法についてのガイダンスはありますか? app.yml のその行を元に戻す以上のことですか?

私の投稿のリンクはガイドですが、PostgreSQL 13 update にも移行したので、新しい方に従ってください。

「いいね!」 4

これで解決し、@Falcoさんの指示に従ってPostgresをアップグレードすることができました

「いいね!」 4

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