seed_fuでデータベースからseedデータを作成するrakeタスクを作った(動的対応)

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に渡す環境変数でテーブル名を動的対応にしました。
コンソールで叩きながら、挙動を確認して実行しました。

railsで初期データを入れる(seed-fuの使い方) – Qiita

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です