mirror of
https://github.com/internetee/registry.git
synced 2025-05-18 02:09:39 +02:00
Prepare history import
This commit is contained in:
parent
1e94909c41
commit
e11c1b5d20
4 changed files with 32 additions and 0 deletions
|
@ -12,5 +12,6 @@ module Legacy
|
||||||
has_many :domain_contact_maps, foreign_key: :domainid
|
has_many :domain_contact_maps, foreign_key: :domainid
|
||||||
has_many :nsset_contact_maps, foreign_key: :nssetid, primary_key: :nsset
|
has_many :nsset_contact_maps, foreign_key: :nssetid, primary_key: :nsset
|
||||||
has_many :domain_histories, foreign_key: :id
|
has_many :domain_histories, foreign_key: :id
|
||||||
|
alias_method :history, :domain_histories
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,5 +3,7 @@ module Legacy
|
||||||
self.table_name = :domain_history
|
self.table_name = :domain_history
|
||||||
|
|
||||||
belongs_to :domain, foreign_key: :id
|
belongs_to :domain, foreign_key: :id
|
||||||
|
belongs_to :history, foreign_key: :historyid
|
||||||
|
has_one :object_history, foreign_key: :historyid, primary_key: :historyid
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
5
app/models/legacy/history.rb
Normal file
5
app/models/legacy/history.rb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
module Legacy
|
||||||
|
class History < Db
|
||||||
|
self.table_name = :history
|
||||||
|
end
|
||||||
|
end
|
|
@ -774,6 +774,30 @@ namespace :import do
|
||||||
|
|
||||||
puts "-----> Imported zones in #{(Time.zone.now.to_f - start).round(2)} seconds"
|
puts "-----> Imported zones in #{(Time.zone.now.to_f - start).round(2)} seconds"
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
def parse_zone_ns_data(domain, zone)
|
def parse_zone_ns_data(domain, zone)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue