seed_fuでデータベースからseedデータを作成するrakeタスクを作りました。(動的対応)
作成したタスクがこれです。
# lib/tasks/seed_fu_generator.rake namespace :seed_fu_generator do desc 'generate seed data from databases (env table_name is required).' task table_name: :environment do SeedFu::Writer.write("db/fixtures/#{Rails.env}/seed_fu_generator_#{ENV['TABLE_NAME']}.rb", class_name: ENV['TABLE_NAME'].classify) do |writer| ENV['TABLE_NAME'].classify.constantize.order(:id).find_each do |object| writer << object.attributes.except("created_at", "updated_at") end end end end
実行するには下記のようにテーブル名を指定します。
% rake seed_fu_generator:table_name TABLE_NAME=admin_users
参考にさせていただいたサイトはテーブル名決め打ちのrakeタスクだったので、rakeに渡す環境変数でテーブル名を動的対応にしました。
コンソールで叩きながら、挙動を確認して実行しました。
コメントを残す