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;
*/
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) {
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');
--- /dev/null
+#
+# 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
+