2011-11-08 71 views
6

經過三個晚上關於這個問題,並閱讀所有關於這個問題的帖子,我最終要問這個問題!Rails錯誤500,「我們很抱歉,但出錯了」

我想要的應用程序部署最簡單的Rails來的Heroku:

rails new test_appli 
cd test_appli 
git init 
git add . 
git commit -m "initial commit" 
heroku create 
git push heroku master 

一切都OK,應用效果很好在Heroku。在那之後,我將創建一個數據庫SQLite3的:在本地計算機上

rails generate scaffold User name:string email:string 
rake db:migrate 

一切都OK。我可以看到localhost:3000/users。然後我想把數據庫放在Heroku上。首先,我修改我的Gemfile:

group :production do 
    gem 'pg' 
end 

group :development, :test do 
    gem 'sqlite3' 
end 

然後我整個事情發送到Heroku的:

git init 
git add . 
git commit -m "with Database" 
git push heroku master 
heroku rake db:migrate 

再就是在批次沒有錯誤,一切都OK,數據庫被髮送,但頁面heroku.com/users給出了錯誤

Rails的500, 「很抱歉,但出事了」

我不知道該怎麼辦。你可以幫我嗎?

+2

你從終端檢查與'Heroku的logs'你的日誌文件? – Dty

+0

當然,它沒有說什麼......答案在下面。謝謝 – user1036495

回答

0

不要在第二組命令中執行git init - 你只需要初始化你的Git倉庫一次。

除此之外,這看起來很好 - 你看到任何地方的任何錯誤?

+0

感謝您的幫助。問題是帶有堆棧的rails版本。隨着鐵軌3,只有堆雪松! – user1036495

0

爲什麼要在您的製作組中使用pg寶石,但在開發組中使用sqlite3寶石?在我看來,你的問題可能是由於你正在開發一個不同的數據庫,然後你在生產環境中使用。如果我是你,我會堅持一個,這將使調試更容易。

如果你真的想/需要得到運行的應用程序儘快,那麼只要運行它在生產中使用SQLite ...的Gemfile:

gem 'rails' 
gem 'sqlite3' 

此外,快速的方法來找出是什麼錯誤會從unix控制檯運行heroku logs

+0

嗨,Heroku無法運行sqlite3,但轉換數據庫在第頁。你必須在gemfile中這樣做。 問題是堆棧的rails版本。隨着鐵軌3,只有堆雪松! – user1036495

+0

其實,Heroku可以運行sqlite3。我在使用sqlite3的Heroku上運行rails3應用程序。我們使用這個堆棧:bamboo-ree-1.8.7。 – Batkins

0

哪個版本的Rails? 你可以嘗試創建在Cedar棧上運行的應用程序嗎?

heroku create myapp --stack cedar 

由於應用程序在雪松運行,你需要修改的命令一下,例如:

heroku run rake db:migrate 

在你真正需要籤你的日誌任何情況下,由於您的問題甚至可能沒有與數據庫相關,但與資產相關。

+0

Thaaannnks !!!!!這是解決方案! 1000倍感謝! – user1036495

7

我懷疑你正試圖部署一個Rails 3.1應用程序到竹棧(heroku創建默認的1.9.2竹棧並且不會運行Rails 3.1)。雪松堆棧更適合Rails 3。1個地點 -

嘗試

heroku create --stack cedar 

創建在Heroku上的應用程序時,並repush起來。還要注意在Heroku上的耙命令將成爲

heroku run rake db:migrate 
+0

Thaaannnks !!!!!這是解決方案! 1000倍感謝! – user1036495

+0

這是正確的答案。謝謝! – user9507

0

你有Heroku的5MB共享數據庫實例增加? 當您創建您的heroku應用程序(在雪松上)時,它不一定會自動創建數據庫。

airlift:projects $ heroku create --stack cedar testapp9 
Creating testapp9... done, stack is cedar 
http://testapp9.herokuapp.com/ | [email protected]:testapp9.git 

airlift:projects $ heroku addons --app testapp9 
logging:basic 
releases:basic 

當您查看您的Heroku的配置,你會得到什麼:

Heroku的配置

airlift:projects $ heroku config --app testapp9 
airlift:projects $ 

添加數據庫:

Heroku的插件:添加共享數據庫:5MB

airlift:projects $ heroku addons:add shared-database:5mb --app testapp9 
-----> Adding shared-database:5mb to testapp9... done, v3 (free) 
airlift:projects $ heroku config 
No app specified. 
Run this command from an app folder or specify which app to use with --app <app name> 
airlift:projects $ heroku config --app testapp9 
DATABASE_URL  => postgres://blah:[email protected]/blah 
SHARED_DATABASE_URL => postgres://blah:[email protected]/blah 
airlift:projects $ 

然後,你應該能夠遷移你的分貝。

+0

你好,非常感謝您的幫助。事實上,正如John Beynon所說,由於導軌版本的原因,我只需將它推到雪松堆疊上即可。它就是這樣的!但我真的很感謝你的幫助!謝謝 – user1036495

3

務必:

Heroku的運行耙分貝:模式:負載

我有同樣的問題。它適用於我後git推heroku主

0

嘿@redronin感謝幫助我找到一種方法來連接到我的postgres數據庫在Heroku,但作爲Heroku和postgresql的新手,我不得不逆向工程什麼「等等」是。所以我想我會打破它幫助別人,因爲你幫助我。

Postgres的:// [用戶]:[密碼] @ [服務器] .compute-1.amazonaws.com/[數據庫]

相關問題