From a3d0e9eeb64e22d1c43b13c9bcafb7a325e025df Mon Sep 17 00:00:00 2001 From: Nicolae Claudius Date: Mon, 26 May 2014 14:11:29 +0300 Subject: [PATCH] data migration --- app/models/concerns/stampable.rb | 4 ++-- db/seeds/development/domains.seeds.rb | 18 ++++++++++-------- lib/tasks/data.rake | 11 +++++++++++ 3 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 lib/tasks/data.rake diff --git a/app/models/concerns/stampable.rb b/app/models/concerns/stampable.rb index 1a9adcf..04f682f 100644 --- a/app/models/concerns/stampable.rb +++ b/app/models/concerns/stampable.rb @@ -10,10 +10,10 @@ module Stampable end def set_creator_attribute - self.creator = User.current + self.creator = User.current unless creator_id? end def set_updator_attribute - self.updator = User.current + self.updator = User.current unless updator_id? && updator_id_changed? end end \ No newline at end of file diff --git a/db/seeds/development/domains.seeds.rb b/db/seeds/development/domains.seeds.rb index c318ccc..a441bc7 100644 --- a/db/seeds/development/domains.seeds.rb +++ b/db/seeds/development/domains.seeds.rb @@ -2,15 +2,17 @@ after 'development:users' do entrydns_org = Domain.find_by_name(Settings.host_domains.first) User.all.each do |user| - 20.times do - domain = FactoryGirl.build(:domain, :user => user) - domain.setup(FactoryGirl.generate(:email)) - domain.save! - domain.soa_record.update_serial! - end + User.do_as(user) do + 20.times do + domain = FactoryGirl.build(:domain, :user => user) + domain.setup(FactoryGirl.generate(:email)) + domain.save! + domain.soa_record.update_serial! + end - 20.times do - FactoryGirl.create(:a, :user => user, :domain => entrydns_org) + 20.times do + FactoryGirl.create(:a, :user => user, :domain => entrydns_org) + end end end diff --git a/lib/tasks/data.rake b/lib/tasks/data.rake new file mode 100644 index 0000000..0dffc1e --- /dev/null +++ b/lib/tasks/data.rake @@ -0,0 +1,11 @@ +desc "Data migrations" +namespace :data do + task :versions_sync => :environment do + PaperTrail::Version.where.not(object: nil).find_each do |version| + if !version.creator_id? && !version.updator_id? && (object = version.reify) && + object.respond_to?(:creator_id) && object.respond_to?(:updator_id) + version.update(creator_id: object.creator_id, updator_id: object.updator_id) + end + end + end +end