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

Docker环境下EF Core执行remove-migration报11001未知主机错误如何解决

问题原因

  • add-migration 仅扫描本地代码结构生成迁移文件,不需要建立真实数据库连接,所以哪怕你的数据库主机地址只能在Docker内部网络解析也能正常执行。
  • remove-migration 会默认尝试连接数据库,查询__EFMigrationsHistory系统表确认待删除的迁移是否已经被应用到数据库,而你本地开发环境无法解析Docker内部的PostgreSQL服务主机名,就会抛出No such host is known的DNS解析错误。

解决方案

方案1:临时修改连接字符串

把你项目配置中的数据库连接字符串的Host值改为localhost,同时确保你的PostgreSQL Docker容器已经将5432端口映射到本地主机对应端口,修改完成后再执行remove-migration即可,操作完成后再把连接字符串改回原配置。

方案2:加--force参数强制删除

如果你明确要删除的迁移尚未被应用到数据库,可以直接执行以下命令跳过数据库校验步骤,直接删除本地迁移文件:

remove-migration --force

注意:该操作不会校验迁移的应用状态,如果删除已应用的迁移会导致后续数据库更新逻辑异常,请确认后再操作。

方案3:在Docker容器内执行命令

进入你的API服务对应的Docker容器内部执行remove-migration命令,容器和PostgreSQL服务处于同一Docker网络下,可以正常解析内部服务主机名,操作前需要确保容器内已经安装了dotnet ef工具。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:06:07