]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4895 Update migration to only disabled deprecated function and add root_id...
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Thu, 28 Nov 2013 09:00:22 +0000 (10:00 +0100)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Thu, 28 Nov 2013 09:00:22 +0000 (10:00 +0100)
sonar-server/src/main/webapp/WEB-INF/db/migrate/461_add_characteristics_columns.rb
sonar-server/src/main/webapp/WEB-INF/db/migrate/462_migrate_characteristics.rb

index 7cf0927d4dab93fa3eabb87a0c9213f4c5391225..dec163f3960c3e41123838895ec855dff0e51c65 100644 (file)
@@ -26,7 +26,8 @@
 class AddCharacteristicsColumns < ActiveRecord::Migration
 
   def self.up
-    add_column 'characteristics', :parent_id,         :integer, :null => true
+    add_column 'characteristics', :parent_id,         :integer,   :null => true
+    add_column 'characteristics', :root_id,           :integer,   :null => true
     add_column 'characteristics', :function_key,      :string,    :null => true,   :limit => 100
     add_column 'characteristics', :factor_value,      :decimal,   :null => true,   :precision => 30,   :scale => 20
     add_column 'characteristics', :factor_unit,       :string,    :null => true,   :limit => 100
index a932cbb1eed7cba373ff3928e79c567c1ca2ed2f..14c3ccdb58dd9ff5810a64aa40e1555613ab4340 100644 (file)
@@ -64,8 +64,6 @@ class MigrateCharacteristics < ActiveRecord::Migration
         properties_by_characteristic_id[prop.characteristic_id] = char_properties
       end
 
-      requirements_to_delete = []
-
       characteristics.each do |characteristic|
         # Requirement
         if characteristic.rule_id
@@ -81,7 +79,7 @@ class MigrateCharacteristics < ActiveRecord::Migration
                 characteristic.factor_value = factor.value
                 characteristic.factor_unit = factor.text_value
                 characteristic.offset_value = 0.0
-                characteristic.offset_unit = 'mn'
+                characteristic.offset_unit = 'd'
 
               when 'linear_offset'
                 characteristic.function_key = 'linear_offset'
@@ -96,29 +94,29 @@ class MigrateCharacteristics < ActiveRecord::Migration
                 characteristic.factor_value = factor.value
                 characteristic.factor_unit = factor.text_value
                 characteristic.offset_value = 0.0
-                characteristic.offset_unit = 'mn'
+                characteristic.offset_unit = 'd'
 
-              # constant_resource is no more managed anymore, it has to be deleted
+              # constant_resource is no more managed anymore, it has to be disabled
               when 'constant_resource'
-                requirements_to_delete << characteristic
+                characteristic.enabled = false
+                characteristic.function_key = 'constant_resource'
+                characteristic.factor_value = 0.0
+                characteristic.factor_unit = 'd'
+                characteristic.offset_value = 0.0
+                characteristic.offset_unit = 'd'
             end
-            # requirement without properties or without remediationFunction has to be deleted
+            # requirement without properties or without remediationFunction has to be disabled
           else
-            requirements_to_delete << characteristic
+            requirement.enabled = false
           end
         end
 
         characteristic.parent_id = parent_ids_by_characteristic_id[characteristic.id]
+        characteristic.root_id = parent_ids_by_characteristic_id[characteristic.parent_id] if characteristic.parent_id
         characteristic.created_at = now
         characteristic.updated_at = now
         characteristic.save
       end
-
-      requirements_to_delete.each do |requirement|
-        CharacteristicProperty.delete_all(['characteristic_id=?', requirement.id])
-        CharacteristicEdge.delete_all(['child_id=?', requirement.id])
-        requirement.delete
-      end
     end
   end