diff options
author | simonbrandhof <simon.brandhof@gmail.com> | 2010-12-22 22:48:48 +0000 |
---|---|---|
committer | simonbrandhof <simon.brandhof@gmail.com> | 2010-12-22 22:48:48 +0000 |
commit | a88064602dbaa52f991c2c5c02b6fef16ff1ed69 (patch) | |
tree | 6175575ff7772f5a395b47a62488fd89cae54f4f | |
parent | 2366419df66b6a46e9be173ee71debff338f2f03 (diff) | |
download | sonarqube-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.rb | 32 |
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 |