どういうbundle exec rake db:migrate
意味ですか?それともbundle exec rake <command>
一般的な意味ですか?
bundle
Gemfile 内の管理はこれで処理されることを理解しています。「exec」という言葉の意味も知っています。rake
実行できるさまざまなスクリプトをすべて管理することは理解していますし、それがdb:migrate
その 1 つであることも知っています。これらすべての単語が一緒に何をするのかはわかりません。データベースの移行を実行するために、 bundle
execute を使用する必要があるのはなぜですかrake
?
ベストアンサー1
bundle exec
はバンドラー現在のバンドル(ディレクトリのバンドル)のコンテキストでスクリプトを実行するコマンドジェムファイル) はrake db:migrate
スクリプトであり、dbは名前空間、migrate は定義されたタスク名です。
したがって、現在のバンドルのコンテキストでbundle exec rake db:migrate
コマンドを使用して rake スクリプトを実行します。db:migrate
「なぜ?」については、バンドラーページ:
場合によっては、実行可能ファイルが
bundle exec
システムにインストールされていて、バンドルと競合する gem が取り込まれない場合は、実行可能ファイルを実行しても機能することがあります。しかし、これは信頼性が低く、かなりのトラブルの原因となります。動作しているように見えても、将来または別のマシンでは動作しない可能性があります。