https://github.com/rroblak/seed_dump
デフォルトdb/seeds.rbを上書きしてしまうため、通常はFILEオプションを利用した方がよい。
$ bin/rake db:seed:dump
$ bin/rake RAILS_ENV=production db:seed:dump
$ bin/rake db:seed:dump FILE=tmp/hoge.rb
$ bin/rake db:seed:dump FILE=tmp/hoge.rb APPEND=true
$ bin/rake db:seed:dump MODELS=User
$ bin/rake db:seed:dump MODELS=User LIMIT=1
$ bin/rake db:seed:dump MODELS_EXCLUDE="User"
$ rake db:seed:dump EXCLUDE=name,age
linux shell上では、モデル操作Model.where(user: "tanaka")
みたいな感じで、クエリを操作した
ダンプができない。
そのような細かい作業をした上でダンプしたい場合はRails Console上でダンプ出力の操作をする
irb(main):001:0> puts SeedDump.dump(User)
User.create!([
{ password: "123456", username: "test_1" },
{ password: "234567", username: "test_2" }
])
irb(main):002:0> SeedDump.dump(User, file: 'db/seeds.rb')
irb(main):004:0> SeedDump.dump(User, exclude: [:name, :age])
irb(main):001:0> puts SeedDump.dump(User.where(is_admin: false))
User.create!([
{ password: "123456", username: "test_1", is_admin: false },
{ password: "234567", username: "test_2", is_admin: false }
])