Module: ASModel::RepositoryTransfers::ClassMethods
- Defined in:
 - backend/app/model/ASModel_transfers.rb
 
Instance Method Summary (collapse)
- 
  
    
      - (Object) report_incompatible_constraints(source_repository, target_repository) 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      - (Object) transfer_all(source_repository, target_repository) 
    
    
  
  
  
  
  
  
  
  
  
    
 
Instance Method Details
- (Object) report_incompatible_constraints(source_repository, target_repository)
      52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77  | 
    
      # File 'backend/app/model/ASModel_transfers.rb', line 52 def report_incompatible_constraints(source_repository, target_repository) problems = {} repo_unique_constraints.each do |constraint| target_repo_values = self.filter(:repo_id => target_repository.id). select(constraint[:property]) overlapping_in_source = self.filter(:repo_id => source_repository.id, constraint[:property] => target_repo_values). select(:id) if overlapping_in_source.count > 0 overlapping_in_source.each do |obj| problems[obj.uri] ||= [] problems[obj.uri] << { :json_property => constraint[:json_property], :message => constraint[:message] } end end end if !problems.empty? raise TransferConstraintError.new(problems) end end  | 
  
- (Object) transfer_all(source_repository, target_repository)
      80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98  | 
    
      # File 'backend/app/model/ASModel_transfers.rb', line 80 def transfer_all(source_repository, target_repository) if self.columns.include?(:repo_id) report_incompatible_constraints(source_repository, target_repository) # One delete marker per URI if self.has_jsonmodel? jsonmodel = self.my_jsonmodel self.filter(:repo_id => source_repository.id).select(:id).each do |row| Tombstone.create(:uri => jsonmodel.uri_for(row[:id], :repo_id => source_repository.id)) end end self.filter(:repo_id => source_repository.id). update(:repo_id => target_repository.id, :system_mtime => Time.now) end end  |