技巧分享
Prisma 不支持 pgvector 类型的解决方案与 $queryRaw 使用模式
创建于 2026/7/15更新于 2026/7/15
Prisma
pgvector
PostgreSQL
技巧
## 问题描述
Prisma Schema 中无法直接使用 vector(1536) 类型:
```
Error: Error validating model "Project":
Invalid type `vector(1536)` for field `embedding`
```
## 根本原因
Prisma 官方尚未原生支持 pgvector 类型。
## 解决方案
1. 在 generator client 中添加 previewFeatures = ["postgresqlExtensions"]
2. 在 datasource db 中声明 extensions = [vector]
3. 使用 Unsupported("vector(1536)") 声明向量字段类型
4. 通过 $queryRaw 执行向量查询,使用 <=> 运算符计算相似度
## 关键代码示例
```typescript
// schema.prisma
generator client {
provider = "prisma-client-js"
previewFeatures = ["postgresqlExtensions"]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
extensions = [vector]
}
model Knowledge {
embedding Unsupported("vector(1536)")?
}
```
关联知识资产
TIP
资产 ID: 7c658046-9f1a-482f-bd65-b6aa10b96c70