NuGet包管理器控制台执行Update-Database命令报错求助
Update-Database 连接错误问题分析与解决
问题根源
你使用的ElephantSQL是PostgreSQL托管服务,但全程误用了SQL Server的连接字符串格式和驱动,导致两次错误:
- 第一次错误:
Format Of The Initialization String Does Not Conform To Specification
初始连接字符串是PostgreSQL的URI格式,但项目默认用SQL Server驱动,无法识别该格式,因此报错。 - 第二次错误:SQL Server连接失败
你改成了SQL Server标准连接字符串,但实际要连接的是PostgreSQL服务器,驱动不匹配导致SQL Server客户端无法连接PostgreSQL服务。
解决步骤
1. 安装PostgreSQL的EF Core驱动
在NuGet包管理器控制台执行:
Install-Package Npgsql.EntityFrameworkCore.PostgreSQL
2. 修改连接字符串为PostgreSQL格式
二选一即可:
- URI格式:
"ConnectionStrings": { "sqlserver": "postgres://user123:password123@surus.db.elephantsql.com:5432/nvlohuqx" } - 键值对格式:
"ConnectionStrings": { "sqlserver": "Host=surus.db.elephantsql.com;Database=nvlohuqx;Username=user123;Password=password123;Port=5432" }
3. 配置DbContext使用PostgreSQL驱动
在项目配置文件(如Program.cs)中,将DbContext的驱动改为PostgreSQL:
builder.Services.AddDbContext<YourDbContext>(options => options.UseNpgsql(builder.Configuration.GetConnectionString("sqlserver")));
完成以上步骤后,重新执行Update-Database即可正常连接数据库。
内容的提问来源于stack exchange,提问作者Marco Maher
相关产品推荐
相关产品推荐

