Edited at

bundle execとかdb:createとかが何をしているのか

More than 3 years have passed since last update.

Railsでbundle exec ~~~~~とかrake db:createとかが一体何をしているのかよく知らなかったので調べてみた.


bundle execとは?

例えばコマンドラインで

$ bundle exec rails s

と入力して実行するとRailsサーバーが立ち上がる.

しかし,

$ rails s

と入力して実行してもRailsサーバーは立ち上がる.

じゃあ,前に付いているbundle execって何をしているのかという話なんです.

bundle execとつけて実行すると,そのRailsプロジェクトのGemfileで指定された環境で実行する事ができるようになります.


bundle install --without production

--without productionオプションを追加すると,本番用のgemはローカル環境にインストールはされない.


rake db:createって?

このコマンドを実行すると,Railsプロジェクトのconfigディレクトリの中にあるdatabase.ymlを読み込み,そのファイルに基づいてデータベースを作成します.


rake db:migrateって?

このコマンドを実行すると,Railsプロジェクトのdb/migrateディレクトリの中にあるスクリプトファイルに基づいてデータベースにテーブルを作成します.


rake db:seedって?

このコマンドを実行すると,Railsプロジェクトのdbディレクトリの中にあるseed.rbファイルを実行してデータベースにデータを格納します.


rake master:importって?

このコマンドを実行すると,Railsプロジェクトのlib/tasks内にある該当するスクリプトファイルを実行します.