2011-12-05 195 views
2

是否可以將Cedar堆棧上的Heroku應用從一種語言切換到另一種語言?在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 

嘗試運行的節點REPL還表明,二元不存在:

> heroku run node 
Running node attached to terminal... up, run.1 
sh: node: not found 

有沒有什麼辦法來重新初始化雪松堆棧應用程序,而不創建一個新的實例?

+0

爲什麼你不只是創建一個新的應用程序,並推動到? –

+0

@JohnBeynon - 主要原因是阻止必須更新連接到現有實例的DNS記錄和/或客戶端。如果推薦的方法是簡單地創建一個新實例並關閉舊實例,那麼在部署過程中檢測到不同的應用程序類型時,通知用戶這一點可能會很有幫助。 –

+0

您實際上不必更改任何DNS記錄 - 這只是將自定義域從一個應用程序實例移動到Heroku上的另一個應用程序實例。如果您將基礎語言從PHP更改爲Node,那麼在讓用戶放鬆它之前,有一個可以測試的新應用程序似乎很明智嗎? –

回答

1

創建一個新的實例應用程序實例。嘗試將其中一個變爲另一個可能不是一個好主意。 DNS會自動爲您更新,因爲路由網格會處理這個問題,您會更快樂,更好。我(雖然略有不同的用例)將一個應用程序從Bamboo遷移到Cedar,整個過程花了我不到五分鐘的時間。唯一的停機時間是幾秒鐘,而我重新定位了應用程序上的自定義域設置。

0

我知道這是一個老問題,但我遇到了這個問題,我的應用程序從PHP更改爲NodeJs。我第一次運行git push heroku master時出現錯誤,說它無法使用PHP buildpack。

所以我在我的應用程序去設置選項卡中Heroku的儀表盤,並從Buildpacks列表刪除PHP buildpack。 最後,當我運行git push heroku master時,Heroku自動檢測到NodeJS構建包。

相關問題