bundle exec rake db:migrate真的意味着什麼?或者bundle exec rails我知道bundle處理我們在Gemfile中指定的所有gem,並且rake處理所有你可以通過腳本執行的事情,但是這些命令不會在沒有前綴bundle exec的情況下執行,我找不到在互聯網上的任何文件!在Ruby on Rails中使用bundle exec
回答
捆紮機 - 管理你的應用程序的依賴
在捆綁的上下文中運行命令,最好的辦法
$束EXEC
Exec的運行命令,只要它能夠訪問在寶石束。當使用捆綁EXEC可以要求並調用綁定的寶石,好像他們是安裝到系統級的RubyGems庫
有了:
束EXEC耙分貝:遷移
在一個非正式的方式,意味着你的Rails環境將
-Install依賴與捆綁 然後 - 運行在你的Rails應用程序的數據庫遷移(/ yourapp/DB /遷移)
除了數據庫操作,你可以做任何其他的命令行的東西,可以通過耙控制(如建立你的應用程序,擴展,清理一些文件等)
,如果你想這可能是有用避免令人困惑的場景,可能是您的設置中某些寶石已過時,或從您的環境中丟失。這是一個很好的做法,因爲調用rake本身並不能保證你得到了所有的依賴。
Bundler的作用是創建一個獨立於底層主機系統的獨立的Ruby語言編程環境。它可以做什麼是有限的。例如,您需要像RVM這樣的軟件來管理不同版本的Ruby語言虛擬機。當然,Ruby和Bundler本身必須在您的項目之外才能運行。
但是,在一個項目中,bundle exec
將限制Bundler安裝到該項目中的寶石的訪問權限。這意味着,通過bundle exec調用Rake實用程序將是您的項目中安裝的rake版本,而不是系統範圍的版本。這也意味着`bundle rake db:migrate'將使用爲您的項目安裝的正確版本的rails。這會將您的項目與主機上Ruby環境的更新隔離開來,從而防止出現兼容性問題。
您可以通過在你的.bash_profile創建別名(假設你使用OSX或Linux/UNIX)爲bundle exec
,bundle exec rake
和bundle exec rails
繞過冗長。我使用bexec,剎車和brails。
- 1. Ruby on rails bundle install - json error
- 2. 使用bundle install在我的Ruby on Rails項目中安裝Bootstrap
- 3. rails s或bundle exec rails
- 4. 當使用capistrano時,Ruby on Rails在bundle安裝上失敗
- 5. Ruby on Rails的bundle命令錯誤
- 6. 爲什麼rails會迫使我使用bundle exec?
- 7. bundle exec rails失敗,因爲獨角獸
- 8. 在Ruby on Rails 3.2中使用Equal == 0
- 9. 如何在Ruby on Rails中使用Procs?
- 10. 在Ruby on Rails中使用Redis的「Keys *」
- 11. Ruby on Rails - 在html.erb中使用助手
- 12. 如何在Ruby on Rails中使用https
- 13. 在Ruby on Rails中使用LightBox 2 3.2.3
- 14. DRY在Ruby on Rails中使用模型
- 15. 在Ruby on Rails中使用Google OAuth2 API
- 16. 在Ruby on Rails中使用遷移
- 17. 在Ruby on Rails中使用Apache Mahout
- 18. 如何在ruby-on-rails中使用create_association
- 19. 何時在Ruby on Rails中使用lambda?
- 20. 在Ruby on Rails中使用會話
- 21. 在Ruby on Rails中使用Silverlight?
- 22. 在Ruby on Rails中使用Smpp
- 23. 在Ruby On Rails中使用jquery
- 24. 在Ruby On Rails中使用ActiveRecord 3
- 25. 如何在Ruby on Rails中使用TCPServer?
- 26. 在Ruby on Rails中使用Dashes操作
- 27. Ruby on Rails權限被拒絕 - /root/.bundle/ruby/1.8/specifications
- 28. Ruby on Rails的:validation_presence_of使用
- 29. 使用Ruby on Rails的
- 30. 使用Ruby on Rails模型