【Heroku】seedデータの投入方法

seedデータとは

データベースに投入する初期データのことです

開発環境と本番環境にそれぞれseedデータを作成してみます

1. 開発環境にseedファイル「members.rb」を作成します

myapp $ touch db/seeds/development/members.rb

2. 作成された「members.rb」を編集します

names = %w(Taro Jiro Hana John Mike Sophy Bill Alex Mary Tom)
fnames = ["佐藤", "鈴木", "高橋", "田中"]
gnames = ["太郎", "次郎", "花子"]
0.upto(9) do |idx|
  Member.create(
    number: idx + 10,
    name: names[idx],
    full_name: "#{fnames[idx % 4]} #{gnames[idx % 3]}",
    email: "#{names[idx]}@example.com",
    birthday: "1981-12-01",
    sex: [1, 1, 2][idx % 3],
    administrator: (idx == 0),
    password: "asagao!",
    password_confirmation: "asagao!"
  )
end

0.upto(29) do |idx|
  Member.create(
    number: idx + 20,
    name: "John#{idx + 1}",
    full_name: "John Doe#{idx + 1}",
    email: "John#{idx+1}@example.com",
    birthday: "1981-12-01",
    sex: 1,
    administrator: false,
    password: "password",
    password_confirmation: "password"
  )
end

3. seedデータを投入します

myapp $ rails db:seed

4. 先ほど作成したseedファイル「members.rb」を本番環境にコピーします

myapp $ cp db/seeds/development/members.rb db/seeds/production

5. ここまでの変更をpushします

myapp $ git push
myapp $ git push heroku

6. Herokuのデータベースをリセットします

myapp $ heroku pg:reset DATABASE

7. マイグレーションを実行します

myapp $ heroku run rails db:migrate

8. seedデータを入れて完了です

myapp $ heroku run rails db:seed

参考 f:id:haru89:20200509141621p:plain:w70

https://blog.cloud-acct.com/posts/spa-seeddata-setup/