【发布时间】:2011-12-05 04:51:22
【问题描述】:
是否可以将 Cedar 堆栈上的 Heroku 应用从一种语言切换到另一种语言?
在这个特定的实例中,我正在尝试将应用程序从 PHP 迁移到 NodeJS,在执行 git push 后,它被检测为 NodeJS 应用程序:
-----> Heroku receiving push
-----> Node.js app detected
-----> Fetching Node.js binaries
-----> Vendoring node 0.4.7
-----> Installing dependencies with npm 1.0.94
Dependencies installed
-----> Discovering process types
Procfile declares types -> web
-----> Compiled slug size is 5.0MB
-----> Launching... done, v7
...但是它随后崩溃:
Error: No such file or directory - node main.js
尝试运行 Node REPL 也表明二进制文件不存在:
> heroku run node
Running node attached to terminal... up, run.1
sh: node: not found
有没有什么方法可以在不创建新实例的情况下重新初始化 Cedar 堆栈应用程序?
【问题讨论】:
-
你为什么不完全创建一个新的应用程序并推动它?
-
@JohnBeynon - 主要原因是为了防止必须更新 DNS 记录和/或连接到现有实例的客户端。如果推荐的方法是简单地创建一个新实例并终止旧实例,则在部署期间检测到不同的应用程序类型时通知用户可能会有所帮助。
-
您实际上不必更改任何 DNS 记录 - 只需将自定义域从一个应用程序实例移动到 Heroku 上的另一个。如果您将底层语言从 PHP 更改为 Node,那么在让用户放松之前拥有一个可以测试的新应用似乎是明智之举?
-
我们正在我们的暂存实例上对此进行测试,这就是我们发现问题的方式。无论如何,看起来创建一个新的实例可能更容易。谢谢。