使用Invoke-Sqlcmd执行EF Core迁移脚本时数据库登录失败求助
解决方法
问题根源在于连接字符串指定了不存在的testApp3db作为初始数据库——SQL Server会优先尝试连接这个目标数据库,失败后直接终止操作,根本不会执行脚本里的创建数据库命令。
解决步骤:
- 修改连接字符串,将
Initial Catalog替换为系统默认存在的master数据库,这样能成功建立连接,后续脚本中的创建数据库命令就能正常执行。 - 调整后的PowerShell命令:
Invoke-Sqlcmd -ConnectionString "Data Source=.\SQLEXPRESS;Initial Catalog=master;Integrated Security=true;MultipleActiveResultSets=true;" -InputFile "C:\migrations.sql"
额外检查项:
- 确认脚本中
CREATE DATABASE testApp3db语句在任何USE testApp3db语句之前,避免出现切换到不存在数据库的报错。 - 核对脚本里的数据库名称拼写,确保和后续操作中要使用的名称完全一致。
内容的提问来源于stack exchange,提问作者ruddnisrus
相关产品推荐
相关产品推荐

