不,先生,没问题。谢谢您的信息。
在我的情况下,这是因为我使用了 scram-sha-256 而不是 trust 作为身份验证机制。
因为 scram-sha-256 需要一个物理用户。
你也许可以通过在 pg_ident.conf 中创建一个用户映射来解决这个问题,但我不太确定如何操作。
如果“物理用户”是指“Unix 系统用户”,那么 scram-sha-256 不需要配置系统用户。peer 方法需要系统用户,而 trust 在使用远程数据库服务器时绝对是个糟糕的主意。
我们是否需要在现有流程之外,另外包含以下内容?
CREATE EXTENSION vector;
因为我在 discourse_docker postgres 模板中看到了这个扩展?
它由 Discourse AI 核心插件使用,因此如果您正在使用它,则需要它。
我不记得启用了那个插件。事实上,我刚检查过,它是禁用的。但最近当我重建镜像时,当最新的提交超出了这个提交 - https://github.com/discourse/discourse/tree/0eab7daea450e1d7e416c46a23aaaf95687d4855,`rake db:migrate` 就开始失败。当我使用上面的那个提交之前的提交来引导时,它仍然有效。
现在我已经启用了这个扩展,晚于此的提交可以正常工作。
但是现在AI插件已包含在核心中,所以无论您是否使用AI插件(或设法显式删除它),您都需要该扩展程序,对吗?
没错,因为迁移是独立于插件是否启用的。
使用托管的 PostgreSQL 服务器作为非超级用户时,即使已手动将 vector 添加到数据库,db 迁移在启用 EnablePgVectorExtension (‘20230710171141’) 时也会失败。是否有办法禁用此迁移步骤或检查 vector 是否存在。
导致原因:
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: 错误:因为 vector 不是受信任的扩展,所以只有“azure_pg_admin”的成员才允许使用 CREATE EXTENSION vector (ActiveRecord::StatementInvalid)
提示:要了解如何允许扩展或查看允许的扩展列表,请参阅 Considerations with the Use of Extensions and Modules | Microsoft Learn
我们上个月合并了一个拉取请求(PR)来处理这个问题,您使用的是最新版本吗?
谢谢!我正在使用 docker 镜像 discourse/discourse:3.5.3。不确定它是否包含最新的拉取请求(PR)?(编辑:Release v2025.12.0 包含了该 PR)