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模型