我们的 CI/CD 使用 GitHub 操作来运行我们的测试套件等。 在操作工作流中设置数据库时,尝试运行“CREATE EXTENSION vector;”时会失败。 (在 Rails 迁移中,它是“enable_extension 'vector'”,我确信这是正确的语法,因为所有其他扩展都可以工作。我一直收到此错误:
ActiveRecord::StatementInvalid: PG::UndefinedFile: ERROR: could not open extension control file "/usr/share/postgresql/1***/extension/vector.control": No such file or directory
我已确认以下内容:只有一个版本的 Postgres 服务器正在运行,即版本 15。有问题的文件确实存在,在预期路径中,具有与其余扩展相同的权限:
/usr/share/postgresql/15/extension/vector.control
安装完所有内容后,我重新启动 postgres。我尝试使用 apt-get 安装 pgvector,并手动使用 https://github.com/pgvector/pgvector 提供的示例。 据我所知它已安装(正如我上面所说,丢失的文件就在它应该在的位置)。 我在日志跟踪中看到这一点:
Setting up postgresql-15-pgvector (0.***.***-1.pgdg22.0***+1) ...
我已将丢失文件的位置添加到我的路径中。
我无法确定问题是否出在 rake 任务上,或者是否只是传递来自 PG 的错误,但我怀疑后者,因为它在错误消息中显示“PG::UndefinedFile”。
我的容器是
ubuntu-latest
,图像是redis:alpine
。 Ruby 版本为 3.2.2,所有 gems 安装正确。
有人知道我做错了什么吗?
我自己对这个问题没有得到满意的答案,但我能找到的最好的答案是这些 GitHub Actions 的设置说明。
我能够使用那里的服务说明(使用
pgvector/pgvector:pg15
图像)让 Postgres 和 Pgvector 在我的 Rails 应用程序的 GitHub Actions CI 中很好地协同工作。