我多次瀏覽這個標題,試圖找到一個最新的解決方案,將我的本地Meteor Mongo數據庫部署到Heroku。所以我在這裏發佈這個答案給所有同樣的人,雖然問題是關於設置MONGO_URL。
這裏是一個更新的解決方案(流星1.3.2.4)推送本地Meteor Mongo數據庫到Heroku(免費)mLabs。我的應用程序不使用隕石,它使用「馬」buildpack。
1.使本地蒙戈數據庫的轉儲
在端子(未蒙戈外殼)在您的應用程序文件夾,
mongodump --port=3001 -o ../dump
2.將數據庫文件出了「 dump/your-db-name「up into」dump「
在我的本地meteor實例中,/ dump文件夾放在我應用程序上方的文件夾中,所以」dump「與我應用程序的文件夾位於同一目錄中。 「dump」包含一個以我的數據庫命名的文件夾(「dump/my-database-name /」)。這會導致下一個腳本失敗並出現mongorestore錯誤「不知道如何處理'my-database-name'」。爲防止出現錯誤,請將文件夾「my-database-name」中的所有文件上移到「dump」中,然後刪除「my-database-name」文件夾。
默認情況下,您的數據庫名稱是「meteor」,所以如果您沒有更改它,請查找「dump/meteor /」。
3.在mLabs中,如果您還沒有這樣做,請創建一個具有管理員權限的用戶。對我來說,在安裝時分配的默認用戶不起作用。
4.將您傾銷的數據庫推送到您的Heroku應用的mLabs。這假設你已經在你的Heroku應用中添加了mLabs插件,並在你的Heroku應用配置中設置了「MONGO_URL」。如果這些沒有完成,他們必須先完成。
在終端(不是mongo shell)中,從應用程序的目錄切換到包含「dump」目錄的目錄。就我而言,這只是「cd ../」。
轉到您的Heroku應用程序的mLabs插件並單擊「工具」選項卡,以獲取您的默認「導入」腳本。這個腳本不適合我,但它可能適用於你。如果沒有,粘貼這個腳本,用你的變量代替括號內的變量(也可以替換括號)。
mongorestore -h [your mLabs value] -d [your mLabs default user name] -u [your mLabs created user name] -p [your mLabs created user's password]
腳本運行後,您應該能夠刷新您的mLabs「集合」選項卡並查看推送的數據。
祝你好運:)我希望這可以幫助別人!
這是Heroku環境提供給應用程序的一個環境變量,如process.env.PORT和process.env.HOST。因此,只需在if語句中根據需要進行更改即可使用。另外檢查一個相關的問題... http://stackoverflow.com/questions/9730567/node-js-mongoose-works-locally-but-not-on-heroku – almypal