diff options
author | Fabrice Bellingard <bellingard@gmail.com> | 2012-02-14 13:55:31 +0100 |
---|---|---|
committer | Fabrice Bellingard <bellingard@gmail.com> | 2012-02-14 13:56:52 +0100 |
commit | 16773f7fbbbf5f8418474da63624a4168b883420 (patch) | |
tree | 14cc4dd46d8983406ab41371e12a5169f09c6367 | |
parent | af243b35f9abd5ae641b21febe58f20ec52b74ad (diff) | |
download | sonarqube-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 |