npolar/api.npolar.no

View on GitHub
bin/couch-archiver

Summary

Maintainability
Test Coverage
#!/usr/bin/env ruby
require 'json'
require 'csv'

# usage: ruby couch-archiver.rb <couch_json_dump_file> <csv_output_file>
# json_dump can be obtained by doing:
# curl http://<couch_url>/<db_name>/_all_docs?include_docs=true > all.json
#
# curl https://dbmaster.data.npolar.no:6984/dataset/_all_docs?include_docs=true | npolar-couchdb-export - 

in_path = ARGV[0]
out_path = ARGV[1]
format = ARGV[2] or "json"

ignore = ['_id', 'id', '_rev', 'rev', 'created_by', 'updated_by', 'schema', 'updated', 'created']

couch = JSON.parse(ARGF.read)
rows = couch['rows']
docs = []

rows.each do |row|
  doc = {}
  row['doc'].each do |key, val|
    if not ignore.include? key
      doc[key] = val
    end
  end
  docs << doc
end

puts format

#CSV.open(out_path, "wb") do |csv|
#  csv << docs[0].keys
#  docs.each do |doc|
#    csv << doc.values
#  end
#end