构建错误:创建扩展“vector”的权限被拒绝

您好,

我在重建我的多站点 discourse 安装时遇到问题。我收到了下面粘贴的错误。

  • 我正在以 root 身份运行 ./launcher rebuild app
  • /var/discourse 中的 git status 显示我已与 main 分支同步。
  • 它报告正在运行 postgres 15.13:
    2025-08-14 10:35:04.390 UTC [45] LOG: starting PostgreSQL 15.13 (Debian 15.13-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
  • 我已禁用除 docker_manager 之外的所有插件。

以下是错误:

I, [2025-08-14T10:35:56.213949 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'find /var/www/discourse/vendor/bundle -name cache -not -path "/var/www/discourse/vendor/bundle/gems/*" -type d -exec rm -rf {} + '
I, [2025-08-14T10:35:56.325831 #1]  INFO -- : 
I, [2025-08-14T10:35:56.325961 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'find /var/www/discourse/vendor/bundle -name tmp -type d -exec rm -rf {} + '
I, [2025-08-14T10:35:56.430781 #1]  INFO -- : 
I, [2025-08-14T10:35:56.431139 #1]  INFO -- : > cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate
`/root` is not writable.
Bundler will use `/tmp/bundler20250814-776-hjo98w776' as your home directory temporarily.
2025-08-14 10:36:05.626 UTC [872] discourse@b_discourse ERROR:  permission denied to create extension "vector"
2025-08-14 10:36:05.626 UTC [872] discourse@b_discourse HINT:  Must be superuser to create this extension.
2025-08-14 10:36:05.626 UTC [872] discourse@b_discourse STATEMENT:  CREATE EXTENSION IF NOT EXISTS "vector"
2025-08-14 10:36:05.627 UTC [872] discourse@b_discourse ERROR:  current transaction is aborted, commands ignored until end of transaction block
2025-08-14 10:36:05.627 UTC [872] discourse@b_discourse STATEMENT:  SELECT 1 FROM pg_available_extensions WHERE name = 'vector';
2025-08-14 10:36:05.753 UTC [873] discourse@c_discourse ERROR:  permission denied to create extension "vector"
2025-08-14 10:36:05.753 UTC [873] discourse@c_discourse HINT:  Must be superuser to create this extension.
2025-08-14 10:36:05.753 UTC [873] discourse@c_discourse STATEMENT:  CREATE EXTENSION IF NOT EXISTS "vector"
2025-08-14 10:36:05.753 UTC [873] discourse@c_discourse ERROR:  current transaction is aborted, commands ignored until end of transaction block
2025-08-14 10:36:05.753 UTC [873] discourse@c_discourse STATEMENT:  SELECT 1 FROM pg_available_extensions WHERE name = 'vector';
2025-08-14 10:36:05.870 UTC [874] discourse@d_discourse ERROR:  permission denied to create extension "vector"
2025-08-14 10:36:05.870 UTC [874] discourse@d_discourse HINT:  Must be superuser to create this extension.
2025-08-14 10:36:05.870 UTC [874] discourse@d_discourse STATEMENT:  CREATE EXTENSION IF NOT EXISTS "vector"
2025-08-14 10:36:05.870 UTC [874] discourse@d_discourse ERROR:  current transaction is aborted, commands ignored until end of transaction block
2025-08-14 10:36:05.870 UTC [874] discourse@d_discourse STATEMENT:  SELECT 1 FROM pg_available_extensions WHERE name = 'vector';

非常感谢任何帮助/提示!

您是作为root用户执行此操作的吗(在此之前运行了sudo -s)?

您好 @NateDhaliwal,是的,我正在以 root 身份运行。

1 个赞

我在 PostgreSQL 中解决了它(首先我必须使用 service restart docker 重启 docker)

./launcher enter app
sudo -u postgres psql

然后为每个站点的数据库运行此命令:

\c b_discourse
CREATE EXTENSION IF NOT EXISTS vector;
1 个赞

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