Rails|テストデータの挿入

2023/09/19に公開

DBを初期化する

ターミナル
$ rails db:migrate:reset

seedファイルにテストデータを挿入

seeds.rb
taro = User.find_or_create_by!(email: "taro@example.com") do |user|
  user.name = "佐藤太郎"
  user.job = "大学生"
  user.password = "password"
  user.confirmed_at = Time.now
  user.profile_image = ActiveStorage::Blob.create_and_upload!(io: File.open("#{Rails.root}/db/fixtures/hanako.jpg"), filename:"taro.jpg")
end

※dbフォルダ内に fixturesフォルダを作成し、そこに画像を格納する。

データベースへ反映

ターミナル
$ rails db:seed

以下コマンドでコンソールを開いて User.all等を実行し、データベースに反映されているかどうかを確認する。

ターミナル
$ rails c 

DBをリセットしたい時

rails db:seedを実行する場合、

ターミナル
$ rails db:reset

rails db:seedを実行しない場合

ターミナル
$ rails db:migrate:reset

本番環境でのseedデータの挿入

EC2
$ rails db:seed RAILS_ENV=production

本番環境でDBのリセット

EC2
$ RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop

再度DBへ反映

EC2
$ rake db:create RAILS_ENV=production
$ rake db:migrate RAILS_ENV=production
$ rake db:seed RAILS_ENV=production

Discussion