From 79ab08f123b13eb52c1f2c6ab828a2586ac8aaa3 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Tue, 8 Jul 2014 16:26:08 +0200 Subject: [PATCH] SONAR-5447 Drop unused DB tables ACTIVE_RULE_CHANGES and ACTIVE_RULE_PARAM_CHANGES --- .../core/persistence/DatabaseVersion.java | 10 +- .../org/sonar/core/persistence/rows-h2.sql | 1 + .../org/sonar/core/persistence/schema-h2.ddl | 24 ---- .../580_drop_active_rule_changes_tables.rb | 32 +++++ .../v44/ChangeLogMigrationTest.java | 2 +- .../v44/FeedQProfileDatesMigrationTest.java | 2 + .../v44/ChangeLogMigrationTest/schema.sql | 113 ++++++++++++++++++ 7 files changed, 153 insertions(+), 31 deletions(-) create mode 100644 sonar-server/src/main/webapp/WEB-INF/db/migrate/580_drop_active_rule_changes_tables.rb create mode 100644 sonar-server/src/test/resources/org/sonar/server/db/migrations/v44/ChangeLogMigrationTest/schema.sql 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 2eeaa8c21dd..4c6d911578e 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 @@ -33,7 +33,7 @@ import java.util.List; */ public class DatabaseVersion implements BatchComponent, ServerComponent { - public static final int LAST_VERSION = 556; + public static final int LAST_VERSION = 580; public static enum Status { UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL @@ -48,9 +48,8 @@ public class DatabaseVersion implements BatchComponent, ServerComponent { "action_plans", "active_dashboards", "active_rules", - "active_rule_changes", "active_rule_parameters", - "active_rule_param_changes", + "activities", "authors", "characteristics", "dashboards", @@ -92,9 +91,8 @@ public class DatabaseVersion implements BatchComponent, ServerComponent { "users", "user_roles", "widgets", - "widget_properties", - "activities" - ); + "widget_properties" + ); private 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 cfc4e72849d..79458576885 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 @@ -249,6 +249,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('553'); INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('554'); INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('555'); INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('556'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('580'); INSERT INTO USERS(ID, LOGIN, NAME, EMAIL, CRYPTED_PASSWORD, SALT, CREATED_AT, UPDATED_AT, REMEMBER_TOKEN, REMEMBER_TOKEN_EXPIRES_AT) VALUES (1, 'admin', 'Administrator', '', 'a373a0e667abb2604c1fd571eb4ad47fe8cc0878', '48bc4b0d93179b5103fd3885ea9119498e9d161b', '2011-09-26 22:27:48.0', '2011-09-26 22:27:48.0', null, null); ALTER TABLE USERS ALTER COLUMN ID RESTART WITH 2; diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl index a740173f02b..c3a7095f900 100644 --- a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl +++ b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl @@ -78,14 +78,6 @@ CREATE TABLE "GROUPS" ( "UPDATED_AT" TIMESTAMP ); -CREATE TABLE "ACTIVE_RULE_PARAM_CHANGES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "ACTIVE_RULE_CHANGE_ID" INTEGER NOT NULL, - "RULES_PARAMETER_ID" INTEGER NOT NULL, - "OLD_VALUE" VARCHAR(4000), - "NEW_VALUE" VARCHAR(4000) -); - CREATE TABLE "SNAPSHOTS" ( "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "CREATED_AT" TIMESTAMP, @@ -226,18 +218,6 @@ CREATE TABLE "DUPLICATIONS_INDEX" ( "END_LINE" INTEGER NOT NULL ); -CREATE TABLE "ACTIVE_RULE_CHANGES" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "USERNAME" VARCHAR(255), - "PROFILE_ID" INTEGER NOT NULL, - "PROFILE_VERSION" INTEGER NOT NULL, - "RULE_ID" INTEGER NOT NULL, - "CHANGE_DATE" TIMESTAMP NOT NULL, - "ENABLED" BOOLEAN, - "OLD_SEVERITY" INTEGER, - "NEW_SEVERITY" INTEGER -); - CREATE TABLE "PROJECT_MEASURES" ( "ID" BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "VALUE" DOUBLE, @@ -601,12 +581,8 @@ CREATE INDEX "DEPS_PRJ_SID" ON "DEPENDENCIES" ("PROJECT_SNAPSHOT_ID"); CREATE INDEX "MEASURES_SID_METRIC" ON "PROJECT_MEASURES" ("SNAPSHOT_ID", "METRIC_ID"); -CREATE INDEX "ACTIVE_RULE_CHANGES_PID" ON "ACTIVE_RULE_CHANGES" ("PROFILE_ID"); - CREATE UNIQUE INDEX "METRICS_UNIQUE_NAME" ON "METRICS" ("NAME"); -CREATE INDEX "ACTIVE_RULE_PARAM_CHANGES_CID" ON "ACTIVE_RULE_PARAM_CHANGES" ("ACTIVE_RULE_CHANGE_ID"); - CREATE INDEX "EVENTS_SNAPSHOT_ID" ON "EVENTS" ("SNAPSHOT_ID"); CREATE INDEX "EVENTS_RESOURCE_ID" ON "EVENTS" ("RESOURCE_ID"); diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/580_drop_active_rule_changes_tables.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/580_drop_active_rule_changes_tables.rb new file mode 100644 index 00000000000..f8a2c4a7a78 --- /dev/null +++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/580_drop_active_rule_changes_tables.rb @@ -0,0 +1,32 @@ +# +# SonarQube, open source software quality management tool. +# Copyright (C) 2008-2014 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. +# + +# +# SonarQube 4.5 +# SONAR-5447 +# +class DropActiveRuleChangeTables < ActiveRecord::Migration + + def self.up + drop_table :active_rule_param_changes + drop_table :active_rule_changes + end + +end diff --git a/sonar-server/src/test/java/org/sonar/server/db/migrations/v44/ChangeLogMigrationTest.java b/sonar-server/src/test/java/org/sonar/server/db/migrations/v44/ChangeLogMigrationTest.java index 26ac5f20952..c18374b0bed 100644 --- a/sonar-server/src/test/java/org/sonar/server/db/migrations/v44/ChangeLogMigrationTest.java +++ b/sonar-server/src/test/java/org/sonar/server/db/migrations/v44/ChangeLogMigrationTest.java @@ -43,7 +43,7 @@ import static org.mockito.Mockito.when; public class ChangeLogMigrationTest { @ClassRule - public static TestDatabase db = new TestDatabase(); + public static TestDatabase db = new TestDatabase().schema(ChangeLogMigrationTest.class, "schema.sql"); @Mock System2 system2; diff --git a/sonar-server/src/test/java/org/sonar/server/db/migrations/v44/FeedQProfileDatesMigrationTest.java b/sonar-server/src/test/java/org/sonar/server/db/migrations/v44/FeedQProfileDatesMigrationTest.java index d18e7ccd714..0b381687c32 100644 --- a/sonar-server/src/test/java/org/sonar/server/db/migrations/v44/FeedQProfileDatesMigrationTest.java +++ b/sonar-server/src/test/java/org/sonar/server/db/migrations/v44/FeedQProfileDatesMigrationTest.java @@ -40,6 +40,8 @@ public class FeedQProfileDatesMigrationTest { @Before public void setUp() throws Exception { + db.executeUpdateSql("truncate table active_rule_changes"); + db.executeUpdateSql("truncate table active_rule_param_changes"); DbClient dbClient = new DbClient(db.database(), db.myBatis()); System2 system = mock(System2.class); when(system.now()).thenReturn(UtcDateUtils.parseDateTime("2014-07-03T12:00:00+0000").getTime()); diff --git a/sonar-server/src/test/resources/org/sonar/server/db/migrations/v44/ChangeLogMigrationTest/schema.sql b/sonar-server/src/test/resources/org/sonar/server/db/migrations/v44/ChangeLogMigrationTest/schema.sql new file mode 100644 index 00000000000..9e353e72063 --- /dev/null +++ b/sonar-server/src/test/resources/org/sonar/server/db/migrations/v44/ChangeLogMigrationTest/schema.sql @@ -0,0 +1,113 @@ + +CREATE TABLE "RULES_PARAMETERS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "RULE_ID" INTEGER NOT NULL, + "NAME" VARCHAR(128) NOT NULL, + "PARAM_TYPE" VARCHAR(512) NOT NULL, + "DEFAULT_VALUE" VARCHAR(4000), + "DESCRIPTION" VARCHAR(4000) + ); + + CREATE TABLE "RULES_PROFILES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "NAME" VARCHAR(100) NOT NULL, + "LANGUAGE" VARCHAR(20), + "KEE" VARCHAR(255) NOT NULL, + "PARENT_KEE" VARCHAR(255), + "RULES_UPDATED_AT" VARCHAR(100), + "CREATED_AT" TIMESTAMP, + "UPDATED_AT" TIMESTAMP + ); + + CREATE TABLE "ACTIVE_RULE_PARAM_CHANGES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "ACTIVE_RULE_CHANGE_ID" INTEGER NOT NULL, + "RULES_PARAMETER_ID" INTEGER NOT NULL, + "OLD_VALUE" VARCHAR(4000), + "NEW_VALUE" VARCHAR(4000) + ); + + CREATE TABLE "RULES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "PLUGIN_RULE_KEY" VARCHAR(200) NOT NULL, + "PLUGIN_NAME" VARCHAR(255) NOT NULL, + "DESCRIPTION" VARCHAR(16777215), + "PRIORITY" INTEGER, + "CARDINALITY" VARCHAR(10), + "PARENT_ID" INTEGER, + "PLUGIN_CONFIG_KEY" VARCHAR(500), + "NAME" VARCHAR(200), + "STATUS" VARCHAR(40), + "LANGUAGE" VARCHAR(20), + "NOTE_DATA" CLOB(2147483647), + "NOTE_USER_LOGIN" VARCHAR(40), + "NOTE_CREATED_AT" TIMESTAMP, + "NOTE_UPDATED_AT" TIMESTAMP, + "CHARACTERISTIC_ID" INTEGER, + "DEFAULT_CHARACTERISTIC_ID" INTEGER, + "REMEDIATION_FUNCTION" VARCHAR(20), + "DEFAULT_REMEDIATION_FUNCTION" VARCHAR(20), + "REMEDIATION_COEFF" VARCHAR(20), + "DEFAULT_REMEDIATION_COEFF" VARCHAR(20), + "REMEDIATION_OFFSET" VARCHAR(20), + "DEFAULT_REMEDIATION_OFFSET" VARCHAR(20), + "EFFORT_TO_FIX_DESCRIPTION" VARCHAR(4000), + "CREATED_AT" TIMESTAMP, + "UPDATED_AT" TIMESTAMP + ); + + CREATE TABLE "ACTIVE_RULE_CHANGES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "USERNAME" VARCHAR(200), + "PROFILE_ID" INTEGER NOT NULL, + "PROFILE_VERSION" INTEGER NOT NULL, + "RULE_ID" INTEGER NOT NULL, + "CHANGE_DATE" TIMESTAMP NOT NULL, + "ENABLED" BOOLEAN, + "OLD_SEVERITY" INTEGER, + "NEW_SEVERITY" INTEGER + ); + + CREATE TABLE "ACTIVE_RULES" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "PROFILE_ID" INTEGER NOT NULL, + "RULE_ID" INTEGER NOT NULL, + "FAILURE_LEVEL" INTEGER NOT NULL, + "INHERITANCE" VARCHAR(10), + "NOTE_CREATED_AT" TIMESTAMP, + "NOTE_UPDATED_AT" TIMESTAMP, + "NOTE_USER_LOGIN" VARCHAR(40), + "NOTE_DATA" CLOB(2147483647) + ); + + CREATE TABLE "ACTIVE_RULE_PARAMETERS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "ACTIVE_RULE_ID" INTEGER NOT NULL, + "RULES_PARAMETER_ID" INTEGER NOT NULL, + "RULES_PARAMETER_KEY" VARCHAR(128), + "VALUE" VARCHAR(4000) + ); + + CREATE TABLE "USERS" ( + "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + "LOGIN" VARCHAR(40), + "NAME" VARCHAR(200), + "EMAIL" VARCHAR(100), + "CRYPTED_PASSWORD" VARCHAR(40), + "SALT" VARCHAR(40), + "CREATED_AT" TIMESTAMP, + "UPDATED_AT" TIMESTAMP, + "REMEMBER_TOKEN" VARCHAR(500), + "REMEMBER_TOKEN_EXPIRES_AT" TIMESTAMP, + "ACTIVE" BOOLEAN DEFAULT TRUE + ); + + CREATE TABLE "ACTIVITIES" ( + "LOG_KEY" VARCHAR(250), + "CREATED_AT" TIMESTAMP, + "USER_LOGIN" VARCHAR(30), + "LOG_TYPE" VARCHAR(250), + "LOG_ACTION" VARCHAR(250), + "LOG_MESSAGE" VARCHAR(250), + "DATA_FIELD" CLOB(2147483647) + ); -- 2.39.5