From: Simon Brandhof Date: Tue, 1 Mar 2016 14:58:40 +0000 (+0100) Subject: SONAR-7330 fix DB migration X-Git-Tag: 5.5-M6~28 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=543e7cad315546d672e110a769444b3e8ae6049f;p=sonarqube.git SONAR-7330 fix DB migration --- diff --git a/sonar-db/src/main/java/org/sonar/db/version/MigrationStepModule.java b/sonar-db/src/main/java/org/sonar/db/version/MigrationStepModule.java index 30ab456009e..ceb4bed0ccc 100644 --- a/sonar-db/src/main/java/org/sonar/db/version/MigrationStepModule.java +++ b/sonar-db/src/main/java/org/sonar/db/version/MigrationStepModule.java @@ -74,7 +74,7 @@ import org.sonar.db.version.v55.AddIssuesType; import org.sonar.db.version.v55.AddRulesColumns; import org.sonar.db.version.v55.DeleteMeasuresWithCharacteristicId; import org.sonar.db.version.v55.DropActiveRulesDateColumns; -import org.sonar.db.version.v55.DropRulesDateColumns; +import org.sonar.db.version.v55.DropRulesDatesAndCharacteristics; import org.sonar.db.version.v55.FeedActiveRulesLongDateColumns; import org.sonar.db.version.v55.FeedIssueTypes; import org.sonar.db.version.v55.FeedRulesLongDateColumns; @@ -152,7 +152,7 @@ public class MigrationStepModule extends Module { FeedActiveRulesLongDateColumns.class, AddIssuesType.class, FeedIssueTypes.class, - DropRulesDateColumns.class, + DropRulesDatesAndCharacteristics.class, DropActiveRulesDateColumns.class ); } diff --git a/sonar-db/src/main/java/org/sonar/db/version/v55/DropRulesDateColumns.java b/sonar-db/src/main/java/org/sonar/db/version/v55/DropRulesDateColumns.java deleted file mode 100644 index 082f44d6806..00000000000 --- a/sonar-db/src/main/java/org/sonar/db/version/v55/DropRulesDateColumns.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2016 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * This program 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. - * - * This program 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. - */ -package org.sonar.db.version.v55; - -import com.google.common.annotations.VisibleForTesting; -import java.sql.SQLException; -import org.sonar.db.Database; -import org.sonar.db.version.DdlChange; -import org.sonar.db.version.DropColumnsBuilder; - -/** - * Drop the following columns from the rules table : - * - created_at - * - updated_at - */ -public class DropRulesDateColumns extends DdlChange { - - private final Database db; - - public DropRulesDateColumns(Database db) { - super(db); - this.db = db; - } - - @Override - public void execute(Context context) throws SQLException { - context.execute(generateSql()); - } - - @VisibleForTesting - String generateSql() { - return new DropColumnsBuilder(db.getDialect(), "rules", - "created_at", "updated_at", "characteristic_id", "default_characteristic_id") - .build(); - } - -} diff --git a/sonar-db/src/main/java/org/sonar/db/version/v55/DropRulesDatesAndCharacteristics.java b/sonar-db/src/main/java/org/sonar/db/version/v55/DropRulesDatesAndCharacteristics.java new file mode 100644 index 00000000000..5eb37083e1e --- /dev/null +++ b/sonar-db/src/main/java/org/sonar/db/version/v55/DropRulesDatesAndCharacteristics.java @@ -0,0 +1,54 @@ +/* + * SonarQube + * Copyright (C) 2009-2016 SonarSource SA + * mailto:contact AT sonarsource DOT com + * + * This program 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. + * + * This program 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. + */ +package org.sonar.db.version.v55; + +import com.google.common.annotations.VisibleForTesting; +import java.sql.SQLException; +import org.sonar.db.Database; +import org.sonar.db.version.DdlChange; +import org.sonar.db.version.DropColumnsBuilder; + +/** + * Drop the following columns from the rules table : + * - created_at + * - updated_at + */ +public class DropRulesDatesAndCharacteristics extends DdlChange { + + private final Database db; + + public DropRulesDatesAndCharacteristics(Database db) { + super(db); + this.db = db; + } + + @Override + public void execute(Context context) throws SQLException { + context.execute(generateSql()); + } + + @VisibleForTesting + String generateSql() { + return new DropColumnsBuilder(db.getDialect(), "rules", + "created_at", "updated_at", "characteristic_id", "default_characteristic_id") + .build(); + } + +} diff --git a/sonar-db/src/test/java/org/sonar/db/version/v55/DropRulesDateColumnsTest.java b/sonar-db/src/test/java/org/sonar/db/version/v55/DropRulesDateColumnsTest.java deleted file mode 100644 index 96c357151a8..00000000000 --- a/sonar-db/src/test/java/org/sonar/db/version/v55/DropRulesDateColumnsTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2016 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * This program 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. - * - * This program 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. - */ -package org.sonar.db.version.v55; - -import org.junit.Before; -import org.junit.Test; -import org.sonar.db.Database; -import org.sonar.db.dialect.PostgreSql; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class DropRulesDateColumnsTest { - - DropRulesDateColumns migration; - - Database database; - - @Before - public void setUp() { - database = mock(Database.class); - migration = new DropRulesDateColumns(database); - } - - @Test - public void generate_sql_on_postgresql() { - when(database.getDialect()).thenReturn(new PostgreSql()); - assertThat(migration.generateSql()).isEqualTo( - "ALTER TABLE rules DROP COLUMN created_at, DROP COLUMN updated_at, DROP COLUMN characteristic_id, DROP COLUMN default_characteristic_id" - ); - } - -} diff --git a/sonar-db/src/test/java/org/sonar/db/version/v55/DropRulesDatesAndCharacteristicsTest.java b/sonar-db/src/test/java/org/sonar/db/version/v55/DropRulesDatesAndCharacteristicsTest.java new file mode 100644 index 00000000000..f45fc6c5c05 --- /dev/null +++ b/sonar-db/src/test/java/org/sonar/db/version/v55/DropRulesDatesAndCharacteristicsTest.java @@ -0,0 +1,51 @@ +/* + * SonarQube + * Copyright (C) 2009-2016 SonarSource SA + * mailto:contact AT sonarsource DOT com + * + * This program 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. + * + * This program 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. + */ +package org.sonar.db.version.v55; + +import org.junit.Before; +import org.junit.Test; +import org.sonar.db.Database; +import org.sonar.db.dialect.PostgreSql; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class DropRulesDatesAndCharacteristicsTest { + + DropRulesDatesAndCharacteristics underTest; + + Database database; + + @Before + public void setUp() { + database = mock(Database.class); + underTest = new DropRulesDatesAndCharacteristics(database); + } + + @Test + public void generate_sql_on_postgresql() { + when(database.getDialect()).thenReturn(new PostgreSql()); + assertThat(underTest.generateSql()).isEqualTo( + "ALTER TABLE rules DROP COLUMN created_at, DROP COLUMN updated_at, DROP COLUMN characteristic_id, DROP COLUMN default_characteristic_id" + ); + } + +}