diff --git a/config/initializers/active_record_base.rb b/config/initializers/active_record_base.rb index f54d93090..fc57f008d 100644 --- a/config/initializers/active_record_base.rb +++ b/config/initializers/active_record_base.rb @@ -6,4 +6,13 @@ ActiveRecord::Base.class_eval do to_yaml.sub!(/---\s?/, "\n")) end end + + def self.dump_fixtures + fixture_file = "#{Rails.root}/test/fixtures/#{self.table_name}.yml" + File.open(fixture_file, "w") do |f| + self.all.each do |instance| + f.puts({ "#{self.table_name.singularize}_#{instance.id}" => instance.attributes }.to_yaml.sub!(/---\s?/, "\n")) + end + end + end end diff --git a/lib/tasks/fablab.rake b/lib/tasks/fablab.rake index 7aa432945..28dbc701a 100644 --- a/lib/tasks/fablab.rake +++ b/lib/tasks/fablab.rake @@ -177,4 +177,13 @@ namespace :fablab do puts "\nUsers successfully notified\n\n" end + + desc "generate fixtures from db" + task generate_fixtures: :environment do + Rails.application.eager_load! + ActiveRecord::Base.descendants.reject { |c| c == ActiveRecord::SchemaMigration }.each do |ar_base| + p "========== #{ar_base} ==============" + ar_base.dump_fixtures + end + end end