Railsのセットアップにbin/setupを使う

プログラミング
2020年10月22日 12:00

概要

Ruby on Railsのプロジェクトで開発を始める際に、一番最初にソースコードをダウンロードしたり、そのコードの内容から、データベースを作成したりします。

今回は、Railsのプロジェクトで開発を始める際に実行したい処理をまとめておく方法について紹介します。

環境

  • Ruby on Rails 6.0.3

セットアップ

現在のRailsには、binディレクトリの直下にsetupという名前で、セットアップ用のスクリプトが用意されています。

このスクリプトは、実行可能なファイルとして存在し、./bin/setupのように実行するだけでセットアップができます。

私の場合、初期状態では次のように記述されていました。

#!/usr/bin/env ruby
require 'fileutils'

# path to your application root.
APP_ROOT = File.expand_path('..', __dir__)

def system!(*args)
  system(*args) || abort("\n== Command #{args} failed ==")
end

FileUtils.chdir APP_ROOT do
  # This script is a way to setup or update your development environment automatically.
  # This script is idempotent, so that you can run it at anytime and get an expectable outcome.
  # Add necessary setup steps to this file.

  puts '== Installing dependencies =='
  system! 'gem install bundler --conservative'
  system('bundle check') || system!('bundle install')

  # Install JavaScript dependencies
  # system('bin/yarn')

  # puts "\n== Copying sample files =="
  # unless File.exist?('config/database.yml')
  #   FileUtils.cp 'config/database.yml.sample', 'config/database.yml'
  # end

  puts "\n== Preparing database =="
  system! 'bin/rails db:prepare'

  puts "\n== Removing old logs and tempfiles =="
  system! 'bin/rails log:clear tmp:clear'

  puts "\n== Restarting application server =="
  system! 'bin/rails restart'
end

スクリプトを確認すると、Gemのインストールやデータベースのセットアップを実行していることが分かります。

いくつかの部分がコメントアウトされているのですが、その部分をみるとyarnの実行をしたり、database.yml.sampleファイルをdatabase.ymlに変更していたりします。

私の場合は、セットアップの際にyarnの実行をしてほしかったため、その部分のコメントを解除して利用しています。

もちろん、コメントの解除以外にも、新たにコードを追加して処理を追加することができるので、プロジェクトに合わせてコードを追加しましょう。

アップデート

bin/setupの実行では、最初の設定を行うのですが、Railsには他にもbin/updateというスクリプトが用意されています。これは、名前の通り更新の際に実行することを想定したスクリプトです。

私はあまり利用することがないのですが、プロジェクトによっては使うことがあるかもしれません。

もし、なにかの変更を行った際に、その変更を反映させるという使い方などができそうです。

さいごに

Ruby on Railsの良いところとして、公式に便利で様々なものが用意されているというものがあり、bin/setupやbin/update`は、このようなものの一種です。

適当な場面で活用していけたらいいですね。