いいえ、問題ありません。情報ありがとうございます。
私の場合は、trust ではなく scram-sha-256 を使用していたためでした。これは、認証メカニズム に関するものです。
scram-sha-256 は物理的なユーザーを必要とします。
pg_ident.conf でユーザーマップを作成することで回避できるかもしれませんが、その方法は確信がありません。
「物理ユーザー」とは「Unixシステムユーザー」のことだとおっしゃるのであれば、いいえ、scram-sha-256 はシステム上にそのようなユーザーを設定する必要はありません。peer メソッドはシステムユーザーを必要とし、リモートデータベースサーバーを使用している場合は trust はまったく悪い考えです。
既存のプロセスに加えて、以下を含める必要がありますか?
CREATE EXTENSION vector;
discourse_docker postgres テンプレートでこの拡張機能を確認したためです。
それはDiscourse AIコアプラグインによって使用されるため、それを使用している場合は必要になります。
そのプラグインを有効にした覚えがありません。実際、無効になっていることを確認しました。しかし最近、イメージを再構築した際に、このコミットよりも後の最新コミットで rake db:migrate が失敗するようになりました。上記のコミットの直前のコミットを使用してブートストラップしたところ、正常に動作しました。
現在、この拡張機能を有効にしたところ、これ以降のコミットは問題なく動作しています。
しかし、AIプラグインはコアに含まれているため、AIプラグインを使用する場合(または明示的に削除しようとする場合)に関係なく、拡張機能が必要になりますよね?
ああ、それは本当ですね。マイグレーションはプラグインが有効になっているかどうかにかかわらず実行されます。
マネージド PostgreSQL サーバーをスーパーユーザーではないユーザーとして使用している場合、vector をデータベースに手動で追加した後でも、EnablePgVectorExtension ('20230710171141') マイグレーションは失敗します。このマイグレーションステップを無効にする方法、または vector が存在するかどうかを確認する方法はありますか。
原因:
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: vector は信頼された拡張機能ではないため、“azure_pg_admin” のメンバーのみが CREATE EXTENSION vector を使用できます (ActiveRecord::StatementInvalid)
HINT: 拡張機能を許可する方法、または許可された拡張機能のリストを確認するには、Considerations with the Use of Extensions and Modules | Microsoft Learn を参照してください。
先月、これを処理するためのプルリクエスト(PR)をマージしましたが、最新バージョンをご利用でしょうか?
ありがとうございます!discourse/discourse:3.5.3 のDockerイメージを使用しています。これに最新のPRが含まれているかどうかわかりません。(編集:リリース v2025.12.0 にはPRが含まれています)