2011-12-17 77 views
1

我對RoR非常陌生(現在通過Michael Hartl的教程)。我知道你的應用程序可以有三種狀態(?):開發,生產和測試。每個狀態通常使用不同的數據庫類型。RoR瞭解部署

我創建了一個空欄應用程序,放在git下,並將其部署到heroku。這一切都有效。我的應用程序處於heroku的生產狀態還是仍在開發中?你如何檢查?

我想我記得讀過Gemfile指定要在不同狀態下安裝的資源。 heroku是否默認使用生產塊中指定的任何內容?還是我離開?

我的Gemfile

source 'http://rubygems.org' 
gem 'rails', '3.0.11' 
gem 'sqlite3', '1.3.3' 
+0

Heroku的應用程序都默認爲生產。 – sscirrus 2011-12-17 22:26:38

回答

1

您可以通過查看heroku config輸出你正在尋找的RAILS_ENV和/或RACK_ENV再檢查,這將被默認設置爲生產。

1

Heroku默認會使用produciton。這就是爲什麼你應該指定獨立於其他寶石的生產寶石。

例如特別是在Heroku上,你會想添加'pg'寶石,因爲他們使用的是Postgre數據庫。

gem 'pg', :group => :production 

但是既然你只需要這個在生產中,就沒有必要在開發中。同樣,您的生產環境中不需要使用sqlite gem。

group :development, :test do 
    gem 'sqlite3' 
    gem 'rspec' # or any other testing gems, etc. 
end 
+0

嗯有趣。我的Gemfile中沒有'pg'寶石,但數據庫正在處理heroku。這是爲什麼?它是否忽略了sqlite3 gem,並且即使它沒有被引用,我們也會自動使用'pg'? – David 2011-12-17 22:57:12

+0

是的,它會自動添加寶石,但是指定您的製作寶石是一種很好的做法,因爲可能會有一些heroku不會自動包含。 – 2011-12-17 22:58:52

+0

真棒。謝謝! – David 2011-12-17 23:05:47