How to generate fixtures based on my development database?

后端 未结 3 1066
花落未央
花落未央 2021-02-05 04:07

I\'m lazy and I since my production database has data I could use for testing through on going development, I was wondering if there were any easy methods of ge

3条回答
  •  無奈伤痛
    2021-02-05 04:55

    The question is old, but as it still seems relevant: yes, there is an easy way to create fixtures from your development database:

    class ActiveRecord::Base
      def dump_fixture
        fixture_file = "#{Rails.root}/test/fixtures/#{self.class.table_name}.yml"
        File.open(fixture_file, "a+") do |f|
          f.puts({ "#{self.class.table_name.singularize}_#{id}" => attributes }.
            to_yaml.sub!(/---\s?/, "\n"))
        end
      end
    end
    

    Place this in a file in config/initializers - now you can dump any ActiveRecord object in your Rails console and it will automatically be appended at the end of it's respective fixture file:

    User.first.dump_fixture appends fixture data to test/fixtures/users.yml.

提交回复
热议问题