]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4449 Add migration to update issues that are still linked to removed action...
authorJulien Lancelot <julien.lancelot@gmail.com>
Fri, 5 Jul 2013 14:08:51 +0000 (16:08 +0200)
committerJulien Lancelot <julien.lancelot@gmail.com>
Fri, 5 Jul 2013 14:11:10 +0000 (16:11 +0200)
sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql
sonar-server/src/main/webapp/WEB-INF/db/migrate/406_update_issues_action_plan_key.rb [new file with mode: 0644]

index e77f001bd6b96013160613de761c8ab97198a15f..d5af9be02d25131bb51a7af059fd1d89ebb56dbe 100644 (file)
@@ -20,7 +20,6 @@
 package org.sonar.core.persistence;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ImmutableList;
 import org.apache.ibatis.session.SqlSession;
 import org.sonar.api.BatchComponent;
 import org.sonar.api.ServerComponent;
@@ -33,71 +32,12 @@ import java.util.List;
  */
 public class DatabaseVersion implements BatchComponent, ServerComponent {
 
-  public static final int LAST_VERSION = 417;
+  public static final int LAST_VERSION = 406;
 
   public static enum Status {
     UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL
   }
 
-  /**
-   * List of all the tables.
-   * This list is hardcoded because we didn't succeed in using java.sql.DatabaseMetaData#getTables() in the same way
-   * for all the supported databases, particularly due to Oracle results.
-   */
-  public static final List<String> TABLES = ImmutableList.of(
-    "action_plans",
-    "active_dashboards",
-    "active_rules",
-    "active_rule_changes",
-    "active_rule_parameters",
-    "active_rule_param_changes",
-    "alerts",
-    "authors",
-    "characteristics",
-    "characteristic_edges",
-    "characteristic_properties",
-    "dashboards",
-    "dependencies",
-    "duplications_index",
-    "events",
-    "graphs",
-    "groups",
-    "groups_users",
-    "group_roles",
-    "issues",
-    "issue_changes",
-    "issue_filters",
-    "issue_filter_favourites",
-    "loaded_templates",
-    "manual_measures",
-    "measure_data",
-    "measure_filters",
-    "measure_filter_favourites",
-    "metrics",
-    "notifications",
-    "permission_templates",
-    "perm_templates_users",
-    "perm_templates_groups",
-    "projects",
-    "project_links",
-    "project_measures",
-    "properties",
-    "quality_models",
-    "resource_index",
-    "rules",
-    "rules_parameters",
-    "rules_profiles",
-    "semaphores",
-    "schema_migrations",
-    "snapshots",
-    "snapshot_sources",
-    "snapshot_data",
-    "users",
-    "user_roles",
-    "widgets",
-    "widget_properties"
-  );
-
   private MyBatis mybatis;
 
   public DatabaseVersion(MyBatis mybatis) {
index c1ee5787569f98869219acc77b83a11879714f3a..4589151fd6b36205c262fe06c56d99c57b273477 100644 (file)
@@ -172,6 +172,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('402');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('403');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('404');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('405');
+INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('406');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('410');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('411');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('412');
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/406_update_issues_action_plan_key.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/406_update_issues_action_plan_key.rb
new file mode 100644 (file)
index 0000000..5f1b255
--- /dev/null
@@ -0,0 +1,38 @@
+#
+# Sonar, entreprise quality control 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 3.6.1
+#
+# SONAR-4449
+#
+class UpdateIssuesActionPlanKey < ActiveRecord::Migration
+
+  class Issue < ActiveRecord::Base
+  end
+
+  # Update issues that are still linked to removed action plans
+  def self.up
+    Issue.reset_column_information
+    Issue.update_all({:action_plan_key => nil}, "action_plan_key is not null AND not exists (select * from action_plans ap where ap.kee = action_plan_key)")
+  end
+
+end
+