]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4921 Replace deletion of baseId condition by a replacement of the baseId condit...
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 3 Feb 2014 10:22:02 +0000 (11:22 +0100)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 3 Feb 2014 10:23:25 +0000 (11:23 +0100)
sonar-server/src/main/webapp/WEB-INF/db/migrate/495_delete_base_id_from_measure_filters.rb [deleted file]
sonar-server/src/main/webapp/WEB-INF/db/migrate/495_migrate_base_id_to_base_from_measure_filters.rb [new file with mode: 0644]

diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/495_delete_base_id_from_measure_filters.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/495_delete_base_id_from_measure_filters.rb
deleted file mode 100644 (file)
index 6461a86..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# SonarQube, open source software quality management tool.
-# Copyright (C) 2008-2013 SonarSource
-# mailto:contact AT sonarsource DOT com
-#
-# SonarQube is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 3 of the License, or (at your option) any later version.
-#
-# SonarQube is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-#
-
-#
-# Sonar 4.2
-# SONAR-4921
-#
-class DeleteBaseIdFromMeasureFilters < ActiveRecord::Migration
-
-  class MeasureFilter < ActiveRecord::Base
-  end
-
-  def self.up
-    filters = MeasureFilter.all(:conditions => "data LIKE '%baseId=%'")
-    filters.each do |filter|
-      filter.data = filter.data.sub(/baseId=\d+/, '')
-      filter.save
-    end
-  end
-end
-
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/495_migrate_base_id_to_base_from_measure_filters.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/495_migrate_base_id_to_base_from_measure_filters.rb
new file mode 100644 (file)
index 0000000..8df6d80
--- /dev/null
@@ -0,0 +1,43 @@
+#
+# SonarQube, open source software quality management tool.
+# Copyright (C) 2008-2013 SonarSource
+# mailto:contact AT sonarsource DOT com
+#
+# SonarQube is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 3 of the License, or (at your option) any later version.
+#
+# SonarQube is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+#
+
+#
+# Sonar 4.2
+# SONAR-4921
+#
+class MigrateBaseIdToBaseFromMeasureFilters < ActiveRecord::Migration
+
+  class MeasureFilter < ActiveRecord::Base
+  end
+
+  def self.up
+    filters = MeasureFilter.all(:conditions => "data LIKE '%baseId=%'")
+    filters.each do |filter|
+      matchBaseId = filter.data.match(/baseId=(\d+)/)
+      if matchBaseId
+        projectId = matchBaseId[1]
+        project = Project.find_by_id(projectId)
+        # If project exists, we replace the condition using project id by the condition using project key, otherwise we removed the condition
+        filter.data = filter.data.sub(/baseId=\d+/, project ? "base=#{project.kee}" : '')
+        filter.save
+      end
+    end
+  end
+end