From 32de21d20578c3202141cd1965a8f3d53c8ba786 Mon Sep 17 00:00:00 2001 From: simonbrandhof Date: Tue, 4 Jan 2011 15:52:43 +0000 Subject: [PATCH] fix migration to delete unvalid snapshots generated in sonar <= 2.3 --- .../org/sonar/jpa/entity/SchemaMigration.java | 2 +- ...> 170_delete_unvalid_project_snapshots.rb} | 21 ++++++------------- 2 files changed, 7 insertions(+), 16 deletions(-) rename sonar-server/src/main/webapp/WEB-INF/db/migrate/{152_delete_duplicated_lib_snapshots.rb => 170_delete_unvalid_project_snapshots.rb} (72%) diff --git a/sonar-core/src/main/java/org/sonar/jpa/entity/SchemaMigration.java b/sonar-core/src/main/java/org/sonar/jpa/entity/SchemaMigration.java index 4c0ee4aa224..a80961ba4ce 100644 --- a/sonar-core/src/main/java/org/sonar/jpa/entity/SchemaMigration.java +++ b/sonar-core/src/main/java/org/sonar/jpa/entity/SchemaMigration.java @@ -31,7 +31,7 @@ import javax.persistence.*; public class SchemaMigration { public final static int VERSION_UNKNOWN = -1; - public static final int LAST_VERSION = 169; + public static final int LAST_VERSION = 170; public final static String TABLE_NAME = "schema_migrations"; diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/152_delete_duplicated_lib_snapshots.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/170_delete_unvalid_project_snapshots.rb similarity index 72% rename from sonar-server/src/main/webapp/WEB-INF/db/migrate/152_delete_duplicated_lib_snapshots.rb rename to sonar-server/src/main/webapp/WEB-INF/db/migrate/170_delete_unvalid_project_snapshots.rb index f9906e36a8f..623f1c8087f 100644 --- a/sonar-server/src/main/webapp/WEB-INF/db/migrate/152_delete_duplicated_lib_snapshots.rb +++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/170_delete_unvalid_project_snapshots.rb @@ -19,9 +19,10 @@ # # -# Sonar 2.4 +# Sonar 2.5 # -class DeleteDuplicatedLibSnapshots < ActiveRecord::Migration +class DeleteUnvalidProjectSnapshots < ActiveRecord::Migration + def self.up metric=Metric.find(:first, :conditions => ['name=?','lines']) if metric @@ -31,25 +32,15 @@ class DeleteDuplicatedLibSnapshots < ActiveRecord::Migration end def self.select_snapshots_without_measures(metric) - snapshots=[] + snapshots=nil say_with_time "Select project snapshots without measures..." do - snapshots=Snapshot.find_by_sql ["SELECT s.id FROM snapshots s WHERE s.scope='PRJ' and s.qualifier IN ('TRK', 'BRC') AND status='P' AND NOT EXISTS (select m.id from project_measures m WHERE m.snapshot_id=s.id AND m.metric_id=?) and not exists(select * from dependencies d where d.to_snapshot_id=s.id)", metric.id] + snapshots=Snapshot.find_by_sql ["SELECT s.id FROM snapshots s WHERE s.scope='PRJ' and s.qualifier IN ('TRK', 'BRC') AND status='P' AND islast=? AND NOT EXISTS (select m.id from project_measures m WHERE m.snapshot_id=s.id AND m.metric_id=?)", false, metric.id] end snapshots end - def self.filter_involved_in_dependencies(snapshots) - result=[] - if snapshots.size>0 - say_with_time "Filter #{snapshots.size} snapshots..." do - result=Snapshot.find_by_sql ["SELECT s.id FROM snapshots s where s.id in (?) and not exists(select * from dependencies d where d.to_snapshot_id=s.id", snapshots.map{|s| s.id}] - end - end - return result - end - def self.delete_snapshots(snapshots) - if snapshots.size > 0 + if snapshots.size>0 say_with_time "Deleting #{snapshots.size} orphan snapshots..." do sids=snapshots.map{|s| s.id} page_size=100 -- 2.39.5