执行php artisan migrate时PostgreSQL vector扩展缺失问题求助
解决Laravel迁移时PostgreSQL vector扩展缺失的问题
这个错误的核心原因是你的PostgreSQL 12服务器未安装vector扩展(即pgvector,一款用于向量存储的第三方PostgreSQL扩展,并非原生自带),导致执行CREATE EXTENSION IF NOT EXISTS vector时找不到对应的控制文件。
以下是具体解决步骤:
1. 安装pgvector扩展
根据你的操作系统选择对应安装方式:
Debian/Ubuntu 系统
- 先添加PostgreSQL官方源(若未添加):
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt update - 安装适配PostgreSQL 12的pgvector:
sudo apt install postgresql-12-pgvector
CentOS/RHEL 系统
- 添加PostgreSQL官方源:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %rhel)-x86_64/pgdg-redhat-repo-latest.noarch.rpm - 安装适配PostgreSQL 12的pgvector:
sudo yum install postgresql12-pgvector
2. 重启PostgreSQL服务
安装完成后重启服务,确保扩展加载生效:
# Debian/Ubuntu sudo systemctl restart postgresql # CentOS/RHEL sudo systemctl restart postgresql-12
3. 验证并重新执行迁移
- 进入PostgreSQL命令行,执行以下SQL验证扩展是否安装成功:
CREATE EXTENSION IF NOT EXISTS vector; - 若无报错,回到Laravel项目目录重新运行迁移:
php artisan migrate
额外说明(Docker部署场景)
如果使用Docker运行PostgreSQL,需改用包含pgvector的镜像,例如:
docker run -d -p 5432:5432 ankane/pgvector:12
或在自定义Dockerfile中添加安装pgvector的步骤。
内容的提问来源于stack exchange,提问作者Han Hsu
相关产品推荐
相关产品推荐

