在http://ruby.railstutorial.org/chapters/a-demo-app#top中看到的,使用bundle exec rake db:migrate的区别和好处是什么呢,
bundle exec 是什么意思,还可以用于其他途径吗?
bundle exec rake db:migrate和rake db:migrate
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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系统的硬盘