railsとrakeコマンドの違いについて

目次

結論から申し上げますと
Rails 4系までは、このコマンドはrailsから実行する、このコマンドはrakeから実行する
という形で分かれていたのですが、Rails 5系からはrakeで実行していたコマンドもrailsで実行できるようになりました。

ですので、5系以降のシステムではrailsコマンドのみ使用するという認識で問題ないのですが
4系ではどのコマンドでrakeを用いる必要があったのかをまとめてみようと思います。

ちなみにrakeとはmakeと似た機能でRubyで書かれたビルドツールのことです。
参考:https://docs.ruby-lang.org/ja/2.7.0/library/rake.html

確認環境

rakeコマンド

railsコマンド

コマンドの詳細については本家のドキュメントをご参考に
参考:https://railsdoc.com/rails

実行コマンドについて

rake/railsの実行コマンドは
Railsアプリケーションのルートディレクトリ直下で
上記のコマンドのどれかを実行するかと思いますが
挙動としては全て同じになります。

仕組みは以下となります。
1.bin/railsはconfig/bootを読み込んでいる
※ bin/railsファイルの中身

railsコマンドはbin配下のディレクトリに存在していれば
bin/railsコマンドを実行するということで

が同じ意味合いとなります。

2.config/bootではbundler/setupを読み込んでいる
3.bundler/setupが実行されるとbundle execと同じことが実行される

上記の事から

が同じという事が分かり、全てが同じ意味合いのコマンドという事が分かります。
こう読み解くと分かりやすいですね。