Move more stuff in to DataConversion::Base, refactor method names. Add spec for importer.
This commit is contained in:
parent
7453130c63
commit
55191c6838
4 changed files with 39 additions and 18 deletions
|
|
@ -16,5 +16,13 @@ module DataConversion
|
||||||
end
|
end
|
||||||
Rails.logger.debug(message) if Rails.logger
|
Rails.logger.debug(message) if Rails.logger
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def export_directory
|
||||||
|
"tmp/export-for-mysql"
|
||||||
|
end
|
||||||
|
|
||||||
|
def export_path
|
||||||
|
"#{Rails.root}/#{export_directory}"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -21,18 +21,10 @@ module DataConversion
|
||||||
:force_quotes => false}
|
:force_quotes => false}
|
||||||
end
|
end
|
||||||
|
|
||||||
def dirname
|
|
||||||
"export-for-mysql"
|
|
||||||
end
|
|
||||||
|
|
||||||
def dirpath
|
|
||||||
"#{Rails.root}/#{dirname}"
|
|
||||||
end
|
|
||||||
|
|
||||||
def clear_dir
|
def clear_dir
|
||||||
`rm -rf #{dirpath}`
|
`rm -rf #{export_path}`
|
||||||
`mkdir -p #{dirpath}/json`
|
`mkdir -p #{export_path}/json`
|
||||||
`mkdir -p #{dirpath}/csv`
|
`mkdir -p #{export_path}/csv`
|
||||||
end
|
end
|
||||||
|
|
||||||
def db_name
|
def db_name
|
||||||
|
|
@ -72,10 +64,10 @@ module DataConversion
|
||||||
log "Starting JSON export..."
|
log "Starting JSON export..."
|
||||||
models.each do |model|
|
models.each do |model|
|
||||||
log "Starting #{model[:name]} JSON export..."
|
log "Starting #{model[:name]} JSON export..."
|
||||||
filename ="#{dirpath}/json/#{model[:name]}.json"
|
filename ="#{export_path}/json/#{model[:name]}.json"
|
||||||
model[:json_file] = filename
|
model[:json_file] = filename
|
||||||
`#{json_for_model(model[:name])} > #{filename}`
|
`#{json_for_model(model[:name])} > #{filename}`
|
||||||
log "Completed #{model[:name]} JSON export to #{dirname}/json/#{model[:name]}.json."
|
log "Completed #{model[:name]} JSON export to #{export_directory}/json/#{model[:name]}.json."
|
||||||
end
|
end
|
||||||
log "JSON export complete."
|
log "JSON export complete."
|
||||||
end
|
end
|
||||||
|
|
@ -90,7 +82,7 @@ module DataConversion
|
||||||
log "Converting #{model_hash[:name]} json to csv"
|
log "Converting #{model_hash[:name]} json to csv"
|
||||||
json_file = File.open(model_hash[:json_file])
|
json_file = File.open(model_hash[:json_file])
|
||||||
|
|
||||||
csv = CSV.open("#{dirpath}/csv/#{model_hash[:name]}.csv", 'w')
|
csv = CSV.open("#{export_path}/csv/#{model_hash[:name]}.csv", 'w')
|
||||||
csv << model_hash[:attrs]
|
csv << model_hash[:attrs]
|
||||||
|
|
||||||
json_file.each do |aspect_json|
|
json_file.each do |aspect_json|
|
||||||
|
|
@ -148,10 +140,10 @@ module DataConversion
|
||||||
log "Converting #{model_hash[:name]} json to csv"
|
log "Converting #{model_hash[:name]} json to csv"
|
||||||
json_file = File.open(model_hash[:json_file])
|
json_file = File.open(model_hash[:json_file])
|
||||||
|
|
||||||
people_csv = CSV.open("#{dirpath}/csv/#{model_hash[:name]}.csv", 'w')
|
people_csv = CSV.open("#{export_path}/csv/#{model_hash[:name]}.csv", 'w')
|
||||||
people_csv << model_hash[:attrs]
|
people_csv << model_hash[:attrs]
|
||||||
|
|
||||||
profiles_csv = CSV.open("#{dirpath}/csv/profiles.csv", 'w')
|
profiles_csv = CSV.open("#{export_path}/csv/profiles.csv", 'w')
|
||||||
profiles_csv << model_hash[:profile_attrs]
|
profiles_csv << model_hash[:profile_attrs]
|
||||||
|
|
||||||
json_file.each do |aspect_json|
|
json_file.each do |aspect_json|
|
||||||
|
|
@ -217,10 +209,10 @@ module DataConversion
|
||||||
log "Converting #{model_hash[:name]} json to two csvs"
|
log "Converting #{model_hash[:name]} json to two csvs"
|
||||||
json_file = File.open(model_hash[:json_file])
|
json_file = File.open(model_hash[:json_file])
|
||||||
|
|
||||||
main_csv = CSV.open("#{dirpath}/csv/#{model_hash[:name]}.csv", 'w')
|
main_csv = CSV.open("#{export_path}/csv/#{model_hash[:name]}.csv", 'w')
|
||||||
main_csv << model_hash[:main_attrs]
|
main_csv << model_hash[:main_attrs]
|
||||||
|
|
||||||
join_csv = CSV.open("#{dirpath}/csv/#{model_hash[:join_table_name]}.csv", 'w')
|
join_csv = CSV.open("#{export_path}/csv/#{model_hash[:join_table_name]}.csv", 'w')
|
||||||
join_csv << model_hash[:join_table_attrs]
|
join_csv << model_hash[:join_table_attrs]
|
||||||
|
|
||||||
json_file.each do |aspect_json|
|
json_file.each do |aspect_json|
|
||||||
|
|
|
||||||
8
lib/data_conversion/import_from_mysql.rb
Normal file
8
lib/data_conversion/import_from_mysql.rb
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||||
|
# licensed under the Affero General Public License version 3 or later. See
|
||||||
|
# the COPYRIGHT file.
|
||||||
|
|
||||||
|
module DataConversion
|
||||||
|
class ImportToMysql < DataConversion::Base
|
||||||
|
end
|
||||||
|
end
|
||||||
13
spec/lib/data_conversion/import_to_mysql_spec.rb
Normal file
13
spec/lib/data_conversion/import_to_mysql_spec.rb
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||||
|
# licensed under the Affero General Public License version 3 or later. See
|
||||||
|
# the COPYRIGHT file.
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
Dir.glob(File.join(Rails.root, 'lib', 'data_conversion', '*.rb')).each { |f| require f }
|
||||||
|
|
||||||
|
describe DataConversion::ImportToMysql do
|
||||||
|
before do
|
||||||
|
@migrator = DataConversion::ImportToMysql.new
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
Loading…
Reference in a new issue