1. ホーム
  2. ruby-on-rails

[解決済み] bundle exec rakeとはどういう意味ですか?

2022-03-14 13:31:59

質問

とは何ですか? bundle exec rake db:migrate の意味は?または単に bundle exec rake <command> を一般的に教えてください。

と理解しています。 bundle は、Gemfile のメンテナンスの面倒を見ます。 exec"という言葉の意味を知っています。 私は以下のことを理解しています。 rake は、あなたができるさまざまなスクリプトをすべて管理しています。 db:migrate はその一つです。ただ、これらの単語が一緒になって何をやっているのかがわからないのです。 なぜ bundle 実行される rake を実行して、データベースのマイグレーションを実行しますか?

解決方法は?

bundle exec バンドラー コマンドを使用して、現在のバンドル (あなたのディレクトリの ジェムファイル ). rake db:migrate はそのスクリプトで db は名前空間であり マイグレート は定義されたタスク名です。

そこで bundle exec rake db:migrate は rake スクリプトをコマンドで実行します。 db:migrate を現在のバンドルのコンテキストで実行します。

については、「なぜ? バンドルページ :

を使わずに実行ファイルを実行することができる場合があります。 bundle exec は、実行ファイルがたまたまあなたのシステムにインストールされていて、あなたのバンドルと衝突するgemsを取り込まない場合、動作することがあります。

しかし、これは信頼性に欠け、かなりの苦痛の元となります。一見うまくいったように見えても、将来的に、あるいは別のマシンでうまくいかないかもしれないのです。