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