You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Langchain与pgvector时PostgreSQL报vector类型不存在错误

使用pgvector+Langchain在PostgreSQL嵌入文档时遇vector类型不存在错误

错误信息

执行表创建语句时触发如下错误:

(psycopg2.errors.UndefinedObject) type "vector" does not exist
LINE 4:  embedding VECTOR(1536), 
                   ^

[SQL: 
CREATE TABLE langchain_pg_embedding (
    collection_id UUID, 
    embedding VECTOR(1536), 
    document VARCHAR, 
    cmetadata JSON, 
    custom_id VARCHAR, 
    uuid UUID NOT NULL, 
    PRIMARY KEY (uuid), 
    FOREIGN KEY(collection_id) REFERENCES langchain_pg_collection (uuid) ON DELETE CASCADE
)
]

环境详情

  • pgvector Docker镜像:ankane/pgvector:v0.4.1
  • Python版本:3.10.6,psycopg2版本:2.9.6,pgvector Python库版本:0.1.6

已安装PostgreSQL扩展列表

Name   | Version |   Schema   |                Description                 
---------+---------+------------+--------------------------------------------
 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
 vector  | 0.4.1   | public     | vector data type and ivfflat access method

已尝试的无效解决方法

  • 重新安装带pgvector扩展的PostgreSQL Docker镜像
  • 按官方说明手动安装扩展
  • 执行以下SQL语句手动安装扩展:
CREATE EXTENSION IF NOT EXISTS vector
    SCHEMA public
    VERSION "0.4.1";

可行解决方向

  1. 确保数据库搜索路径包含public schema
    Langchain连接PostgreSQL时,需确认连接配置中包含public schema的搜索路径。可在连接字符串中添加options='-c search_path=public',或先执行SET search_path TO public;再执行表创建语句。

  2. 确认扩展安装在目标数据库中
    切换到Langchain实际使用的数据库(执行\c your_db_name),再重新执行CREATE EXTENSION vector;,避免扩展安装到了默认postgres库而非业务库。

  3. 升级pgvector Python库
    当前使用的0.1.6版本较旧,升级到与pgvector扩展0.4.1兼容的新版本(如0.2.0及以上),确保客户端与服务端版本匹配。

  4. 核对数据库连接配置
    检查Langchain的连接字符串,确认连接的是已安装vector扩展的数据库实例,避免连接到未配置的数据库。


内容的提问来源于stack exchange,提问作者Rijoanul Hasan Shanto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:50:29