Rails開発コマンド早見表:bundle / rake / rails の使い分けまとめ

スポンサーリンク

Rails開発コマンド早見表:bundle / rake / rails の使い分けまとめ

はじめに

Railsを開発していると bundle exec rake db:migraterails db:migratebin/rails など似たようなコマンドがたくさん出てきます。この記事ではそれぞれの使い分けと、よく使うコマンドをカテゴリ別にまとめます。


bundle exec・bin/・rails の使い分け

bundle exec

Gemfileで管理されたgemのバージョンでコマンドを実行します。

bundle exec rails server
bundle exec rake db:migrate
bundle exec rspec

グローバルにインストールされたgemではなく、プロジェクト固有のバージョンが使われます。Railsプロジェクトでは基本的に bundle exec を付けるのが安全です。

bin/(binstub)

bin/railsbin/rake などはプロジェクトに最初から用意されているショートカットです。bundle exec と同じ効果があり、入力が短くなります。

bin/rails server    # bundle exec rails server と同じ
bin/rake db:migrate # bundle exec rake db:migrate と同じ

rake と rails の違い(Rails 5以降)

Rails 5以降、多くのrakeタスクが rails コマンドでも実行できるようになりました。どちらを使っても同じ結果になります。

# どちらでも同じ
rake db:migrate
rails db:migrate

rake routes
rails routes

rake test
rails test

新しいプロジェクトでは rails コマンドに統一するのがシンプルです。


bundle コマンド早見表

コマンド 説明
bundle install Gemfileのgemをインストールする
bundle update すべてのgemを最新に更新する
bundle update <gem名> 特定のgemだけ更新する
bundle exec <コマンド> Gemfileのバージョンでコマンドを実行する
bundle list インストール済みgemの一覧
bundle info <gem名> gemの詳細情報を表示する
bundle outdated 更新可能なgemを一覧表示する
bundle clean 不要なgemを削除する
bundle binstubs <gem名> bin/ に実行ファイルを生成する
bundle -v Bundlerのバージョンを確認する

rails コマンド早見表

サーバー・コンソール

コマンド 説明
bin/rails server / bin/rails s 開発サーバーを起動する
bin/rails console / bin/rails c Railsコンソールを起動する
bin/rails console --sandbox 変更をロールバックするサンドボックスモード
bin/rails dbconsole / bin/rails db DBのCLIを起動する

ジェネレーター

コマンド 説明
bin/rails generate model User name:string モデルを生成する
bin/rails generate controller Users index コントローラーを生成する
bin/rails generate migration AddEmailToUsers email:string マイグレーションを生成する
bin/rails generate scaffold Post title:string body:text スキャフォールドを生成する
bin/rails destroy model User 生成したファイルを削除する
bin/rails g generate の短縮形
bin/rails d destroy の短縮形

データベース

コマンド 説明
bin/rails db:create DBを作成する
bin/rails db:drop DBを削除する
bin/rails db:migrate マイグレーションを実行する
bin/rails db:migrate:status マイグレーションの適用状況を確認する
bin/rails db:rollback 直前のマイグレーションを戻す
bin/rails db:rollback STEP=3 3つ前に戻す
bin/rails db:seed db/seeds.rb を実行する
bin/rails db:reset DB削除→作成→migrate→seedを一括実行
bin/rails db:schema:load schema.rb からDBを構築する
bin/rails db:version 現在のマイグレーションバージョンを確認する

ルーティング・アセット

コマンド 説明
bin/rails routes ルーティング一覧を表示する
bin/rails routes -g user "user" を含むルートだけ表示する
bin/rails assets:precompile アセットをプリコンパイルする
bin/rails assets:clean プリコンパイル済みアセットを削除する

テスト

コマンド 説明
bin/rails test すべてのテストを実行する
bin/rails test test/models/user_test.rb 特定のテストを実行する
bin/rails test:models モデルのテストだけ実行する
bin/rails test:system システムテストを実行する
bin/rspec RSpecを実行する(rspec-rails導入時)

その他

コマンド 説明
bin/rails runner "User.count" Railsの文脈でコードを実行する
bin/rails about Railsや依存ライブラリのバージョン情報を表示する
bin/rails middleware ミドルウェアの一覧を表示する
bin/rails stats コードの行数統計を表示する
bin/rails log:clear ログファイルを削除する
bin/rails tmp:clear tmp/ 以下のファイルを削除する

rake コマンド早見表

Rails 5以降は rails に統合されていますが、rake でも実行できます。独自Rakeタスクは引き続き rake または bin/rake で実行します。

コマンド 説明
bin/rake -T 定義済みタスクの一覧を表示する
bin/rake -T db "db" を含むタスクだけ表示する
bin/rake <namespace>:<task> カスタムタスクを実行する

よく使う組み合わせパターン

# 開発環境の初期セットアップ
bundle install
bin/rails db:create db:migrate db:seed

# DB変更後の手順
bin/rails generate migration AddAgeToUsers age:integer
bin/rails db:migrate

# マイグレーションを失敗したときに戻す
bin/rails db:rollback
# マイグレーションファイルを修正して再実行
bin/rails db:migrate

# スキーマをリセットしてシードを再投入
bin/rails db:reset

# カスタムRakeタスクの確認と実行
bin/rake -T
bin/rake maintenance:cleanup

まとめ

  • bundle execbin/ を付けることで、プロジェクト固有のgemバージョンで実行できる
  • Rails 5以降は rake の多くが rails コマンドに統合された
  • 独自のRakeタスクは引き続き bin/rake で実行する
  • bin/rails -Tbin/rake -T でタスク一覧を確認できる

gemのバージョン管理は「Bundler入門:Gemfile・bundle install・bundle execの使い方まとめ」を参照してください。

Rakeタスクの作成方法は「Rake入門:Rakefileの書き方からRailsでのカスタムタスク作成まで」を参照してください。

コードスタイルの自動チェックは「RuboCop導入入門:インストールから設定・git commit時の自動実行まで」を参照してください。