2015-09-04 29 views
0

我一直在使用Capistrano來部署我的最新項目。我有一個相當簡單的設置,只有一個生產階段(它創建了一個階段,但我不使用它)。在Capistrano的製作階段創建別名?

我累了打字cap production deploy部署我的應用程序。我真的很喜歡Rails的是如何處理這一點,與rails c p是一樣rails console production。我希望能夠鍵入以下內容:

cap p deploy 

而不是更長的production版本。

我試圖做一個簡單的別名:

ln production.rb p.rb 

運行cap p deploy獲得通過幾乎所有的部署步驟,然後運行耙遷移時死亡:

INFO [03d68697] Running ~/.rvm/bin/rvm 2.2.2 do bundle exec rake db:migrate as [email protected] 
DEBUG [03d68697] Command: cd /var/railsapps/metasmoke/releases/20150904155532 && (RAILS_ENV=p ~/.rvm/bin/rvm 2.2.2 do bundle exec rake db:migrate) 
DEBUG [03d68697] Please require the stackprof gem falling back to fast_stack 
DEBUG [03d68697]  
DEBUG [03d68697] config.eager_load is set to nil. Please update your config/environments/*.rb files accordingly: 
DEBUG [03d68697]  
DEBUG [03d68697]  * development - set it to false 
DEBUG [03d68697]  * test - set it to false (unless you use a tool that preloads your test environment) 
DEBUG [03d68697]  * production - set it to true 
DEBUG [03d68697]  
DEBUG [03d68697] rake aborted! 
DEBUG [03d68697] ActiveRecord::AdapterNotSpecified: 'p' database is not configured. Available: ["default", "development", "test", "production"] 
DEBUG [03d68697] /var/railsapps/metasmoke/shared/bundle/ruby/2.2.0/gems/activerecord-4.2.3/lib/active_record/connection_adapters/connection_specification.rb:248:in `resolve_symbol_connection' 

我該怎麼做?

+0

帽帶參數作爲生產或分期或其他任何階段。查看日誌,rails正在嘗試爲未定義的p查找數據庫設置。也許你可以創建一個數據庫設置爲P可能工作,但我不知道。 –

+0

作爲一個興趣點,你的ln命令正在做一個硬鏈接而不是一個軟鏈接。後者可能更可取。另外,我傾向於使用prod作爲部署名稱,因爲它足夠短以便快速鍵入,並且足夠長以便意義清晰。祝你好運! –

+0

@will_in_wi感謝您的提示! – Undo

回答

3

你可能需要添加

set :rails_env, 'production' 

到production.rb。 Capistrano從舞臺名稱推斷Rails環境名稱。

相關問題