def write_yaml_fixtures_to_file(sql, fixture_name)
  i = "000"
  File.open("#{RAILS_ROOT}/dump/fixtures/#{fixture_name}.yml", 'w' ) do |file|
    data = ActiveRecord::Base.connection.select_all(sql)
    file.write data.inject({}) { |hash, record|
      hash["#{fixture_name}_#{i.succ!}"] = record
      hash
    }.to_yaml
  end
end

def import_table_fixture(table)
  filename = File.join(RAILS_ROOT,'dump','fixtures',table + '.yml')
  success = Hash.new
  records = YAML::load( File.open(filename))

  records.sort.each do |r|
    row = r[1]
    columns = []
    values = []
  
    row.each_pair do |column, value|
      if column.to_sym
        columns << ActiveRecord::Base.connection.quote_column_name(column)
        values << ActiveRecord::Base.connection.quote(value)
      else
        p "Column not found" + column.to_s
      end
    end
    
    insert_sql = "INSERT INTO #{table} (" + columns.join(', ') + ") VALUES (" + values.join(', ') + ")"

      begin
        if ActiveRecord::Base.connection.execute(insert_sql)
          success[table.to_sym] = (success[table.to_sym] ? success[table.to_sym] + 1 : 1)
        end
      rescue
        p "#{table} failed to import: " + insert_sql
      end
  end

  p "Total of #{success[table.to_sym]} #{table} records imported successfully"
end

def import_model_fixture(model)
  filename = File.join(RAILS_ROOT,'dump','fixtures',model.tableize + '.yml')
  success = Hash.new
  records = YAML::load( File.open(filename))
    @model = Class.const_get(model)
    @model.transaction do
      records.sort.each do |r|
        row = r[1]
        @new_model = @model.new

        row.each_pair do |column, value|
          if column.to_sym
            @new_model.send(column + '=', value)
          else
            p "Column not found" + column.to_s
          end
        end


        begin
          if @new_model.save
            success[model.to_sym] = (success[model.to_sym] ? success[model.to_sym] + 1 : 1)
          end
        rescue
          p "#{@new_model.class.to_s} failed to import: " + r.inspect
          p @new_model.errors.inspect
        end
      end

     p "Total of #{success[model.to_sym]} #{@new_model.class.to_s} records imported successfully"
    end
end