小编典典

bundle exec rake 是什么意思?

all

是什么bundle exec rake db:migrate意思?还是bundle exec rake <command>一般来说?

我知道它bundle负责维护 Gemfile
中的内容。我知道“执行”这个词是什么意思。我知道它rake维护了您可以做的所有不同的脚本操作,我知道这db:migrate就是其中之一。我只是不知道所有这些词在一起做什么。为什么要bundle使用executerake来执行数据库迁移?


阅读 123

收藏
2022-03-28

共1个答案

小编典典

bundle exec是一个Bundler命令,用于在当前包的上下文中执行脚本(来自您目录的Gemfile的那个)。rake db:migrate是脚本,其中 db 是命名空间, migrate 是定义的任务名称。

因此,在当前包的上下文中bundle exec rake db:migrate使用命令执行 rake 脚本。db:migrate

至于“为什么?” 我将从捆绑器页面引用:

在某些情况下bundle exec,如果可执行文件恰好安装在您的系统中并且没有引入任何与您的包冲突的 gem,则运行可执行文件可能会起作用。

然而,这是不可靠的并且是相当大的痛苦的来源。即使它看起来可以正常工作,但将来或在另一台机器上可能无法正常工作。

2022-03-28