0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

seedを使わずにdb:migrateで初期データ投入

Last updated at Posted at 2020-01-08

rails db:seedはマスターデータ投入でちょっと面倒だった

マスターデータは初回投入後もちょいちょい追加することがある。
rails db:seedは差分更新みたいなことはできないらしい。(seed_fuとか使わない限り)
rails db:migrate:resetで全削除=>再登録はやりたくない。

rails db:migrateを使えばいい

Railsの初期データを投入する方法を参考にさせてもらった。

rails db:rollbackでやり直したかったので、updownで実装してみた。
changeだとロールバック時にデータ削除ではなく、もう一度挿入されてしまう。

db/migrate/xxxxxxxxx_insert_hoge.rb
class InsertHoge < ActiveRecord::Migration[6.0]
  def insert_data
    [
      { name: 'ウルトラマン', voice: 'duwa' },
      { name: 'バルタン星人', voice: 'fowfowfow' },
    ]
  end

  def up
    insert_data.each do |d|
      Tsuburaya::Character.create(d)
    end
  end

  def down
    insert_data.each do |d|
      Tsuburaya::Character.find_by(name: d[:name]).delete
    end
  end
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?