aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@gmail.com>2013-07-05 16:08:51 +0200
committerJulien Lancelot <julien.lancelot@gmail.com>2013-07-05 16:11:10 +0200
commitcac97c5269e00ea7249f31932350b7df5d80d041 (patch)
tree2f39ae0f9100b41b344bf42bece7b530ef65e501
parentf08942d2baa69ba2ccc7b1fe4c696935f0d696d9 (diff)
downloadsonarqube-cac97c5269e00ea7249f31932350b7df5d80d041.tar.gz
sonarqube-cac97c5269e00ea7249f31932350b7df5d80d041.zip
SONAR-4449 Add migration to update issues that are still linked to removed action plans
-rw-r--r--sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java62
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql1
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/db/migrate/406_update_issues_action_plan_key.rb38
3 files changed, 40 insertions, 61 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java b/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
index e77f001bd6b..d5af9be02d2 100644
--- a/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
+++ b/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
@@ -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) {
diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql b/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql
index c1ee5787569..4589151fd6b 100644
--- a/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql
+++ b/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql
@@ -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
index 00000000000..5f1b2559ae8
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/406_update_issues_action_plan_key.rb
@@ -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
+