SpringBoot启动报错:postgresMlEmbeddingModel Bean创建失败
解决PostgreSQL pgml扩展缺失导致的Spring Boot启动错误
错误原因
你的Spring Boot项目启用了PostgresML自动配置,启动时会自动执行CREATE EXTENSION IF NOT EXISTS pgml语句,但你的PostgreSQL 16未安装pgml扩展,导致找不到扩展控制文件pgml.control,触发Bean创建失败。
解决方法
方法一:安装pgml扩展(需要使用PostgresML功能时)
- 停止本地PostgreSQL服务(可通过Windows服务管理器操作)
- 获取对应PostgreSQL 16版本的pgml预编译二进制包
- 解压后,将以下文件复制到指定目录:
- 将
pgml.control、pgml--*.sql等扩展元文件复制到C:/Program Files/PostgreSQL/16/share/extension/ - 将
pgml.dll等动态链接库文件复制到C:/Program Files/PostgreSQL/16/lib/
- 将
- 重启PostgreSQL服务
- 打开psql命令行工具,执行
CREATE EXTENSION pgml;验证安装,无报错则说明安装成功
方法二:禁用PostgresML自动配置(暂时不需要该功能时)
如果你的项目不需要使用PostgresML的嵌入模型功能,可以直接禁用对应的自动配置:
- 方式1:通过启动类注解排除
在Spring Boot启动类上添加排除配置:@SpringBootApplication(exclude = PostgresMlAutoConfiguration.class) public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } } - 方式2:通过配置文件排除
在application.properties中添加:
或者在spring.autoconfigure.exclude=org.springframework.ai.autoconfigure.postgresml.PostgresMlAutoConfigurationapplication.yml中添加:spring: autoconfigure: exclude: org.springframework.ai.autoconfigure.postgresml.PostgresMlAutoConfiguration
内容的提问来源于stack exchange,提问作者PRATYUSH KUMAR SAHU
相关产品推荐
相关产品推荐

