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. rails s或bundle exec rails
- 2. 爲什麼rails會迫使我使用bundle exec?
- 3. Ruby on Rails權限被拒絕 - /root/.bundle/ruby/1.8/specifications
- 4. 在Ruby on Rails中使用遷移
- 5. 在Ruby on Rails中使用Dashes操作
- 6. 如何在Ruby on Rails中使用Procs?
- 7. 如何在Ruby on Rails中使用https
- 8. 在Ruby on Rails中使用Smpp
- 9. 在Ruby On Rails中使用jquery
- 10. 在Ruby on Rails中使用Apache Mahout
- 11. 在Ruby on Rails中使用Silverlight?
- 12. 在Ruby on Rails 3.2中使用Equal == 0
- 13. 何時在Ruby on Rails中使用lambda?
- 14. 在Ruby On Rails中使用ActiveRecord 3
- 15. Ruby on Rails的使用
- 16. Ruby on Rails的 - 使用AJAX
- 17. Ruby on Rails - 使用時間
- 18. 在eclipse中運行bundle exec
- 19. 在Rails中運行bundle exec rspec spec/requests/static_pages_spec.rb時出現錯誤
- 20. CMS on Ruby on Rails
- 21. 在Ruby On Rails中搜索
- 22. 在Ruby on Rails的
- 23. 在Ruby on Rails的
- 24. 在Ruby on Rails的
- 25. Ruby on Rails錯誤使用Rails方法
- 26. 在CircleCI中設置Elasticsearch和Ruby on Rails
- 27. Ruby與Ruby On Rails
- 28. 如何在Ruby on Rails上使用HSQLDB。
- 29. 在rails上使用uploadify on ruby
- 30. 在Ruby on rails上使用Javascript