From: Simon Brandhof Date: Mon, 5 Nov 2012 13:46:01 +0000 (+0100) Subject: SONAR-3929 Database upgrade fails X-Git-Tag: 3.4~399 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=86543fe81dd9cf3ab6aeed9557dada4e125ff7bb;p=sonarqube.git SONAR-3929 Database upgrade fails --- diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/331_remove_projects_profile_id.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/331_remove_projects_profile_id.rb index 68fc65062e4..abe99ac17c9 100644 --- a/sonar-server/src/main/webapp/WEB-INF/db/migrate/331_remove_projects_profile_id.rb +++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/331_remove_projects_profile_id.rb @@ -28,16 +28,21 @@ class RemoveProjectsProfileId < ActiveRecord::Migration end class Project < ActiveRecord::Base - belongs_to :profile + end class Property < ActiveRecord::Base end def self.up - projects=Project.find(:all, :conditions => ['profile_id is not null and copy_resource_id is null'], :include => :profile) - projects.each do |project| - Property.create(:prop_key => "sonar.profile.#{project.profile.language}", :text_value => project.profile.name, :resource_id => project.id) + projects=Project.find(:all, :conditions => ['profile_id is not null and copy_resource_id is null']) + say_with_time "Processing #{projects.size} projects..." do + projects.each do |project| + profile = Profile.find(:first, :conditions => ['id=?', project.profile_id]) + if profile + Property.create(:prop_key => "sonar.profile.#{profile.language}", :text_value => profile.name, :resource_id => project.id) + end + end end remove_column('projects', 'profile_id') end