Prepare history import

This commit is contained in:
Vladimir Krylov 2015-11-17 12:17:26 +02:00
parent 1e94909c41
commit e11c1b5d20
4 changed files with 32 additions and 0 deletions

View file

@ -12,5 +12,6 @@ module Legacy
has_many :domain_contact_maps, foreign_key: :domainid
has_many :nsset_contact_maps, foreign_key: :nssetid, primary_key: :nsset
has_many :domain_histories, foreign_key: :id
alias_method :history, :domain_histories
end
end

View file

@ -3,5 +3,7 @@ module Legacy
self.table_name = :domain_history
belongs_to :domain, foreign_key: :id
belongs_to :history, foreign_key: :historyid
has_one :object_history, foreign_key: :historyid, primary_key: :historyid
end
end

View file

@ -0,0 +1,5 @@
module Legacy
class History < Db
self.table_name = :history
end
end

View file

@ -774,6 +774,30 @@ namespace :import do
puts "-----> Imported zones in #{(Time.zone.now.to_f - start).round(2)} seconds"
end
desc 'Import history'
task history: :environment do
Domain.where.not(legacy_id: nil).find_each do |domain|
next if domain.versions.where(action: :create).any?
history = Legacy::DomainHistory.where(id: domain.legacy_id).order("valid_from ASC").to_a
history.each_with_index do |his, i|
event = :update
event = :create if i == 0
event = :destroy if i + 1 == history.size && his.history.valid_to.present?
{
item_type: domain.class,
item_id: domain.id,
event: event,
whodunnit: Registrar.find_by(legacy_id: his.object_history.upid || his.object_history.clid),
object: {},
object_changes: {"id" => [nil, 1111] },
created_at: his.object_history.try(:update),
}
end
end
end
end
def parse_zone_ns_data(domain, zone)