执行Heroku应用区域迁移时遇ErrorPlanNotFound错误求助
Fixing Heroku
ErrorPlanNotFound When Forking an App to a New Region 我之前帮朋友处理过一模一样的问题,这个ErrorPlanNotFound错误本质上是Heroku在EU区域找不到你默认使用的数据库计划导致的——当fork命令自动尝试给新应用创建数据库时,系统匹配不到适合目标区域的计划,就会触发这个错误,然后自动销毁应用避免产生不必要的费用。下面给你几个靠谱的解决办法:
1. 显式指定支持EU区域的数据库计划执行fork
默认情况下heroku fork会尝试使用源应用的数据库计划,但有些计划可能在EU区域不可用(比如部分旧的或区域限定的计划)。你可以手动指定一个EU区域支持的计划,比如免费的hobby-dev:
heroku fork --from keepmefit --to keepmefit-eu --region eu --fork-db-plan heroku-postgresql:hobby-dev
如果需要更高配置的计划,可以先执行heroku addons:plans heroku-postgresql查看你的账户能使用的、支持EU区域的计划列表,替换上面的hobby-dev即可。
2. 分步手动创建应用并迁移(更稳妥的方式)
如果fork命令还是报错,你可以拆分步骤手动完成迁移,避免自动销毁的问题:
- 第一步:在EU区域创建空应用
heroku create keepmefit-eu --region eu - 第二步:给新应用添加数据库计划
heroku addons:create heroku-postgresql:hobby-dev --app keepmefit-eu - 第三步:复制源应用的数据库数据到新应用
heroku pg:copy keepmefit::DATABASE keepmefit-eu::DATABASE - 第四步:同步代码和配置
先把新应用添加为git远程仓库:
推送代码到新应用:git remote add keepmefit-eu https://git.heroku.com/keepmefit-eu.git
最后复制源应用的环境变量:git push keepmefit-eu mainheroku config:copy --from keepmefit --app keepmefit-eu
3. 提前确认区域和计划的可用性
执行以下命令确认EU区域是否在你的账户可用,以及数据库计划的区域支持情况:
- 查看所有可用区域:
heroku regions - 查看Heroku PostgreSQL的可用计划:
heroku addons:plans heroku-postgresql
内容的提问来源于stack exchange,提问作者Josemafuen
相关产品推荐
相关产品推荐

