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

如何在PostgreSQL连接字符串中指定目标schema名称

PostgreSQL连接指定Configurator schema的配置方法

迁移默认在public schema建表,是因为Npgsql驱动默认的schema搜索路径优先匹配public,直接在连接字符串中添加Search Path参数指定目标schema即可,同时你现有连接字符串有两处PostgreSQL不兼容的错误需要修正:

  • 端口配置的分隔符错误:Port:5432要改为Port=5432,连接字符串的键值对统一用等号分隔
  • Trusted_Connection=True是SQL Server专属的认证参数,PostgreSQL的Npgsql驱动不识别该配置,直接删除即可

修正后的完整配置如下:

"ConnectionStrings": {
  "DefaultConnection": "Server=localhost;Database=JHI_Configure;Port=5432;User ID=sa;Password=test1;Search Path=Configurator;"
}

补充说明:如果业务需要同时访问多个schema,可以在Search Path后按优先级写多个schema名称,用逗号分隔即可,例如Search Path=Configurator,public,驱动会优先查找Configurator下的数据库对象,找不到时再去public中匹配。

如果配置完连接字符串后迁移依然默认走public,说明你使用的ORM框架(比如EF Core)有更高优先级的schema配置,需要在ORM层单独指定默认schema,以EF Core为例,需要在上下文类的OnModelCreating方法中添加配置:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.HasDefaultSchema("Configurator");
    // 其余模型配置
}

内容的提问来源于stack exchange,提问作者Rupak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 02:21:14