@@ -33,6 +33,9 @@ import org.sonar.db.dialect.MsSql; | |||
import static java.lang.String.format; | |||
/** | |||
* See SONAR-13948. Some columns created in SQ < 5.6 were created with the default command which generated constraints on MS SQL server. | |||
*/ | |||
public class DropMsSQLDefaultConstraintsBuilder { | |||
private final Database db; | |||
private String tableName; |
@@ -22,7 +22,9 @@ package org.sonar.server.platform.db.migration.step; | |||
import java.sql.SQLException; | |||
import org.sonar.db.Database; | |||
import org.sonar.db.DatabaseUtils; | |||
import org.sonar.db.dialect.MsSql; | |||
import org.sonar.server.platform.db.migration.sql.DropColumnsBuilder; | |||
import org.sonar.server.platform.db.migration.sql.DropMsSQLDefaultConstraintsBuilder; | |||
public abstract class DropColumnChange extends DdlChange { | |||
@@ -36,11 +38,14 @@ public abstract class DropColumnChange extends DdlChange { | |||
} | |||
@Override | |||
public void execute(DdlChange.Context context) throws SQLException { | |||
public void execute(Context context) throws SQLException { | |||
if (!checkIfUseManagedColumnExists()) { | |||
return; | |||
} | |||
if (MsSql.ID.equals(getDatabase().getDialect().getId())) { | |||
context.execute(new DropMsSQLDefaultConstraintsBuilder(getDatabase()).setTable(tableName).setColumns(columnName).build()); | |||
} | |||
context.execute(new DropColumnsBuilder(getDatabase().getDialect(), tableName, columnName).build()); | |||
} | |||
@@ -1,51 +0,0 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2023 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.step; | |||
import java.sql.SQLException; | |||
import org.sonar.db.Database; | |||
import org.sonar.db.dialect.MsSql; | |||
import org.sonar.server.platform.db.migration.sql.DropColumnsBuilder; | |||
import org.sonar.server.platform.db.migration.sql.DropMsSQLDefaultConstraintsBuilder; | |||
public class DropColumnWithConstraint extends DropColumnChange { | |||
private final String tableName; | |||
private final String column; | |||
public DropColumnWithConstraint(Database db, String tableName, String column) { | |||
super(db, tableName, column); | |||
this.tableName = tableName; | |||
this.column = column; | |||
} | |||
@Override | |||
public void execute(Context context) throws SQLException { | |||
if (!checkIfUseManagedColumnExists()) { | |||
return; | |||
} | |||
if (MsSql.ID.equals(getDatabase().getDialect().getId())) { | |||
context.execute(new DropMsSQLDefaultConstraintsBuilder(getDatabase()).setTable(tableName).setColumns(column).build()); | |||
} | |||
context.execute(new DropColumnsBuilder(getDatabase().getDialect(), tableName, column).build()); | |||
} | |||
} |
@@ -20,9 +20,9 @@ | |||
package org.sonar.server.platform.db.migration.version.v91; | |||
import org.sonar.db.Database; | |||
import org.sonar.server.platform.db.migration.step.DropColumnWithConstraint; | |||
import org.sonar.server.platform.db.migration.step.DropColumnChange; | |||
public class DropUserManagedColumnFromMetricsTable extends DropColumnWithConstraint { | |||
public class DropUserManagedColumnFromMetricsTable extends DropColumnChange { | |||
private static final String TABLE_NAME = "metrics"; | |||
private static final String COLUMN = "user_managed"; |
@@ -20,9 +20,9 @@ | |||
package org.sonar.server.platform.db.migration.version.v96; | |||
import org.sonar.db.Database; | |||
import org.sonar.server.platform.db.migration.step.DropColumnWithConstraint; | |||
import org.sonar.server.platform.db.migration.step.DropColumnChange; | |||
public class DropSonarlintAdSeenColumnInUsersTable extends DropColumnWithConstraint { | |||
public class DropSonarlintAdSeenColumnInUsersTable extends DropColumnChange { | |||
private static final String TABLE_NAME = "users"; | |||
private static final String COLUMN = "sonarlint_ad_seen"; |
@@ -21,9 +21,8 @@ package org.sonar.server.platform.db.migration.version.v98; | |||
import org.sonar.db.Database; | |||
import org.sonar.server.platform.db.migration.step.DropColumnChange; | |||
import org.sonar.server.platform.db.migration.step.DropColumnWithConstraint; | |||
public class DropProjectMeasureVariationColumn extends DropColumnWithConstraint { | |||
public class DropProjectMeasureVariationColumn extends DropColumnChange { | |||
public static final String TABLE_NAME = "project_measures"; | |||
public static final String COLUMN_NAME = "variation_value_1"; | |||