aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabrice Bellingard <bellingard@gmail.com>2012-02-14 13:55:31 +0100
committerFabrice Bellingard <bellingard@gmail.com>2012-02-14 13:56:52 +0100
commit16773f7fbbbf5f8418474da63624a4168b883420 (patch)
tree14cc4dd46d8983406ab41371e12a5169f09c6367
parentaf243b35f9abd5ae641b21febe58f20ec52b74ad (diff)
downloadsonarqube-16773f7fbbbf5f8418474da63624a4168b883420.tar.gz
sonarqube-16773f7fbbbf5f8418474da63624a4168b883420.zip
SONAR-3223 Update script to clean reviews with deleted resource
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/db/migrate/260_clean_reviews_with_deleted_users_or_resources.rb (renamed from sonar-server/src/main/webapp/WEB-INF/db/migrate/260_fix_reviews_with_deleted_user.rb)36
1 files changed, 22 insertions, 14 deletions
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/260_fix_reviews_with_deleted_user.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/260_clean_reviews_with_deleted_users_or_resources.rb
index 11b303feabe..b73a34f896b 100644
--- a/sonar-server/src/main/webapp/WEB-INF/db/migrate/260_fix_reviews_with_deleted_user.rb
+++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/260_clean_reviews_with_deleted_users_or_resources.rb
@@ -21,26 +21,34 @@
#
# Sonar 2.14
#
-class FixReviewsWithDeletedUser < ActiveRecord::Migration
+class CleanReviewsWithDeletedUsersOrResources < ActiveRecord::Migration
def self.up
- # For http://jira.codehaus.org/browse/SONAR-3102
- must_save=false
- Review.find(:all, :include => ['assignee', 'user']).each do |review|
- if review.user_id && !review.user
- review.user_id=nil
- must_save=true
- end
- if review.assignee_id && !review.assignee
- review.assignee_id=nil
- must_save=true
- end
- review.save if must_save
+
+ Review.find(:all, :include => ['resource', 'assignee', 'user']).each do |review|
+ if review.resource_id && !review.resource
+ # For http://jira.codehaus.org/browse/SONAR-3223
+ review.destroy
+ else
+ # For http://jira.codehaus.org/browse/SONAR-3102
+ must_save=false
+ if review.user_id && !review.user
+ review.user_id=nil
+ must_save=true
+ end
+ if review.assignee_id && !review.assignee
+ review.assignee_id=nil
+ must_save=true
+ end
+ review.save if must_save
+ end
end
+ # For http://jira.codehaus.org/browse/SONAR-3102
ReviewComment.find(:all, :include => 'user').each do |comment|
comment.delete if comment.user_id && !comment.user
- end
+ end
+
end
end