@@ -866,9 +866,7 @@ CREATE TABLE "RULES_METADATA"( | |||
"AD_HOC_NAME" CHARACTER VARYING(200), | |||
"AD_HOC_DESCRIPTION" CHARACTER LARGE OBJECT, | |||
"AD_HOC_SEVERITY" CHARACTER VARYING(10), | |||
"AD_HOC_TYPE" TINYINT, | |||
"CREATED_AT" BIGINT NOT NULL, | |||
"UPDATED_AT" BIGINT NOT NULL | |||
"AD_HOC_TYPE" TINYINT | |||
); | |||
ALTER TABLE "RULES_METADATA" ADD CONSTRAINT "PK_RULES_METADATA" PRIMARY KEY("RULE_UUID"); | |||
@@ -34,6 +34,8 @@ public class DbVersion95 implements DbVersion { | |||
.add(6406, "Insert description from RULES into RULE_DESC_SECTIONS", InsertRuleDescriptionIntoRuleDescSections.class) | |||
.add(6407, "Create index for RULE_DESC_SECTIONS", CreateIndexForRuleDescSections.class) | |||
.add(6408, "Drop column DESCRIPTIONS from RULES table", DropRuleDescriptionColumn.class) | |||
; | |||
.add(6409, "Drop column CREATED_AT from RULES_METADATA table", DropRuleMetadataCreatedAtColumn.class) | |||
.add(6410, "Drop column UPDATED_AT from RULES_METADATA table", DropRuleMetadataUpdatedAtColumn.class) | |||
; | |||
} | |||
} |
@@ -0,0 +1,33 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2022 SonarSource SA | |||
* mailto:info 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.server.platform.db.migration.version.v95; | |||
import org.sonar.db.Database; | |||
import org.sonar.server.platform.db.migration.step.DropColumnChange; | |||
public class DropRuleMetadataCreatedAtColumn extends DropColumnChange { | |||
private static final String TABLE_NAME = "rules_metadata"; | |||
private static final String COLUMN_NAME = "created_at"; | |||
protected DropRuleMetadataCreatedAtColumn(Database db) { | |||
super(db, TABLE_NAME, COLUMN_NAME); | |||
} | |||
} |
@@ -0,0 +1,33 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2022 SonarSource SA | |||
* mailto:info 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.server.platform.db.migration.version.v95; | |||
import org.sonar.db.Database; | |||
import org.sonar.server.platform.db.migration.step.DropColumnChange; | |||
public class DropRuleMetadataUpdatedAtColumn extends DropColumnChange { | |||
private static final String TABLE_NAME = "rules_metadata"; | |||
private static final String COLUMN_NAME = "updated_at"; | |||
protected DropRuleMetadataUpdatedAtColumn(Database db) { | |||
super(db, TABLE_NAME, COLUMN_NAME); | |||
} | |||
} |
@@ -0,0 +1,57 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2022 SonarSource SA | |||
* mailto:info 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.server.platform.db.migration.version.v95; | |||
import java.sql.SQLException; | |||
import java.sql.Types; | |||
import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.sonar.db.CoreDbTester; | |||
import org.sonar.server.platform.db.migration.step.DdlChange; | |||
public class DropRuleMetadataCreatedAtColumnTest { | |||
private static final String COLUMN_NAME = "created_at"; | |||
private static final String TABLE_NAME = "rules_metadata"; | |||
@Rule | |||
public final CoreDbTester db = CoreDbTester.createForSchema(DropRuleMetadataCreatedAtColumnTest.class, "schema.sql"); | |||
private final DdlChange underTest = new DropRuleMetadataCreatedAtColumn(db.database()); | |||
@Test | |||
public void migration_should_drop_created_at_column() throws SQLException { | |||
db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, Types.BIGINT,null, false); | |||
underTest.execute(); | |||
db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); | |||
} | |||
@Test | |||
public void migration_should_be_reentrant() throws SQLException { | |||
db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, Types.BIGINT,null, false); | |||
underTest.execute(); | |||
// re-entrant | |||
underTest.execute(); | |||
db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); | |||
} | |||
} |
@@ -0,0 +1,57 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2022 SonarSource SA | |||
* mailto:info 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.server.platform.db.migration.version.v95; | |||
import java.sql.SQLException; | |||
import java.sql.Types; | |||
import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.sonar.db.CoreDbTester; | |||
import org.sonar.server.platform.db.migration.step.DdlChange; | |||
public class DropRuleMetadataUpdatedAtColumnTest { | |||
private static final String COLUMN_NAME = "updated_at"; | |||
private static final String TABLE_NAME = "rules_metadata"; | |||
@Rule | |||
public final CoreDbTester db = CoreDbTester.createForSchema(DropRuleMetadataUpdatedAtColumnTest.class, "schema.sql"); | |||
private final DdlChange underTest = new DropRuleMetadataUpdatedAtColumn(db.database()); | |||
@Test | |||
public void migration_should_drop_created_at_column() throws SQLException { | |||
db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, Types.BIGINT,null, false); | |||
underTest.execute(); | |||
db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); | |||
} | |||
@Test | |||
public void migration_should_be_reentrant() throws SQLException { | |||
db.assertColumnDefinition(TABLE_NAME, COLUMN_NAME, Types.BIGINT,null, false); | |||
underTest.execute(); | |||
// re-entrant | |||
underTest.execute(); | |||
db.assertColumnDoesNotExist(TABLE_NAME, COLUMN_NAME); | |||
} | |||
} |
@@ -0,0 +1,18 @@ | |||
CREATE TABLE "RULES_METADATA"( | |||
"RULE_UUID" CHARACTER VARYING(40) NOT NULL, | |||
"NOTE_DATA" CHARACTER LARGE OBJECT, | |||
"NOTE_USER_UUID" CHARACTER VARYING(255), | |||
"NOTE_CREATED_AT" BIGINT, | |||
"NOTE_UPDATED_AT" BIGINT, | |||
"REMEDIATION_FUNCTION" CHARACTER VARYING(20), | |||
"REMEDIATION_GAP_MULT" CHARACTER VARYING(20), | |||
"REMEDIATION_BASE_EFFORT" CHARACTER VARYING(20), | |||
"TAGS" CHARACTER VARYING(4000), | |||
"AD_HOC_NAME" CHARACTER VARYING(200), | |||
"AD_HOC_DESCRIPTION" CHARACTER LARGE OBJECT, | |||
"AD_HOC_SEVERITY" CHARACTER VARYING(10), | |||
"AD_HOC_TYPE" TINYINT, | |||
"CREATED_AT" BIGINT NOT NULL, | |||
"UPDATED_AT" BIGINT NOT NULL | |||
); | |||
ALTER TABLE "RULES_METADATA" ADD CONSTRAINT "PK_RULES_METADATA" PRIMARY KEY("RULE_UUID"); |
@@ -0,0 +1,17 @@ | |||
CREATE TABLE "RULES_METADATA"( | |||
"RULE_UUID" CHARACTER VARYING(40) NOT NULL, | |||
"NOTE_DATA" CHARACTER LARGE OBJECT, | |||
"NOTE_USER_UUID" CHARACTER VARYING(255), | |||
"NOTE_CREATED_AT" BIGINT, | |||
"NOTE_UPDATED_AT" BIGINT, | |||
"REMEDIATION_FUNCTION" CHARACTER VARYING(20), | |||
"REMEDIATION_GAP_MULT" CHARACTER VARYING(20), | |||
"REMEDIATION_BASE_EFFORT" CHARACTER VARYING(20), | |||
"TAGS" CHARACTER VARYING(4000), | |||
"AD_HOC_NAME" CHARACTER VARYING(200), | |||
"AD_HOC_DESCRIPTION" CHARACTER LARGE OBJECT, | |||
"AD_HOC_SEVERITY" CHARACTER VARYING(10), | |||
"AD_HOC_TYPE" TINYINT, | |||
"UPDATED_AT" BIGINT NOT NULL | |||
); | |||
ALTER TABLE "RULES_METADATA" ADD CONSTRAINT "PK_RULES_METADATA" PRIMARY KEY("RULE_UUID"); |