Full Curtain 2011-10-13 17:14
浏览 307
已采纳

bundle exec rake db:migrate和rake db:migrate

http://ruby.railstutorial.org/chapters/a-demo-app#top中看到的,使用bundle exec rake db:migrate的区别和好处是什么呢,
bundle exec 是什么意思,还可以用于其他途径吗?

  • 写回答

1条回答 默认 最新

  • horace_lee 2011-10-13 21:54
    关注

    这个吧从头说话比较长

    首先,你得知道bundle是干啥的

    简单讲bundle就是为rails项目提供一个类似沙盒机制,沙盒有很多好处啦。简单讲,能保证主要是项目依赖的gem版本,rails 3呢就从gem变成core了

    然后呢,bundle exec是干啥的

    bundle -h 能看到

    [quote] bundle exec(1) bundle-exec.1.html
    Execute a script in the context of the current bundle[/quote]

    就说是为了维护工作环境,其实还是gem版本,bundle是拷Gemfile这个配置文件来维持统一的gem版本的。所以,你可以有多个项目使用相同的gem,但是不同的版本。

    最后,说说你的这个例子命令里,有没有bundle exec的区别。

    rake db:migrate是移植数据库啦。那么,这里实际是调用了一个rake的gem,所以,如果你的系统,如果有多个rake,比如,你系统是0.9但你在这个项目的Gemfile里写rake版本是0.8.7,项目多的时候完全可能,有些项目的有些gem版本就是没有升级。那么,写bundle exec会调用0.8.7的rake执行,不写的系统会默认调用最新的版本也就是0.9的rake。所以,也就是,有可能会出错了。

    比较啰嗦凑合看

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘