aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsimonbrandhof <simon.brandhof@gmail.com>2010-12-22 22:48:48 +0000
committersimonbrandhof <simon.brandhof@gmail.com>2010-12-22 22:48:48 +0000
commita88064602dbaa52f991c2c5c02b6fef16ff1ed69 (patch)
tree6175575ff7772f5a395b47a62488fd89cae54f4f
parent2366419df66b6a46e9be173ee71debff338f2f03 (diff)
downloadsonarqube-a88064602dbaa52f991c2c5c02b6fef16ff1ed69.tar.gz
sonarqube-a88064602dbaa52f991c2c5c02b6fef16ff1ed69.zip
db migration : do not fail if SNAPSHOTS.VARIATION_VALUE_x columns already exist
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/db/migrate/163_add_measure_variation_values.rb32
1 files changed, 24 insertions, 8 deletions
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/163_add_measure_variation_values.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/163_add_measure_variation_values.rb
index 385be1745b1..b42ce8f4403 100644
--- a/sonar-server/src/main/webapp/WEB-INF/db/migrate/163_add_measure_variation_values.rb
+++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/163_add_measure_variation_values.rb
@@ -24,14 +24,30 @@
class AddMeasureVariationValues < ActiveRecord::Migration
def self.up
- remove_column :project_measures, :diff_value_1
- remove_column :project_measures, :diff_value_2
- remove_column :project_measures, :diff_value_3
- add_column(:project_measures, :variation_value_1, :decimal, :null => true, :precision => 30, :scale => 20)
- add_column(:project_measures, :variation_value_2, :decimal, :null => true, :precision => 30, :scale => 20)
- add_column(:project_measures, :variation_value_3, :decimal, :null => true, :precision => 30, :scale => 20)
- add_column(:project_measures, :variation_value_4, :decimal, :null => true, :precision => 30, :scale => 20)
- add_column(:project_measures, :variation_value_5, :decimal, :null => true, :precision => 30, :scale => 20)
+ remove_measures_column(:diff_value_1)
+ remove_measures_column(:diff_value_2)
+ remove_measures_column(:diff_value_3)
+
+ add_measures_column('variation_value_1')
+ add_measures_column('variation_value_2')
+ add_measures_column('variation_value_3')
+ add_measures_column('variation_value_4')
+ add_measures_column('variation_value_5')
+ end
+
+ private
+ def self.remove_measures_column(colname)
+ begin
+ remove_column :project_measures, colname
+ rescue
+ # already removed
+ end
end
+ def self.add_measures_column(colname)
+ ProjectMeasure.reset_column_information()
+ unless ProjectMeasure.column_names.include?(name)
+ add_column(:project_measures, colname, :decimal, :null => true, :precision => 30, :scale => 20)
+ end
+ end
end