Class HibernateAlterTableExecutor
- java.lang.Object
-
- com.atlassian.confluence.upgrade.ddl.HibernateAlterTableExecutor
-
- All Implemented Interfaces:
AlterTableExecutor
public class HibernateAlterTableExecutor extends Object implements AlterTableExecutor
Executes all the various database-specific table altering commands.PLEASE READ: Due to CONFDEV-7957 (and until HSQLDB addresses their concurrency issues), any upgrade tasks that composes this executor must be wrapped in a transaction proxy with REQUIRES_NEW propagation.
- Since:
- 4.0
-
-
Field Summary
Fields Modifier and Type Field Description static int
HSQLDB_RELATION_ALREADY_EXISTS_ERRORCODE
static String
HSQLDB_RELATION_ALREADY_EXISTS_SQLSTATE
static int
MYSQL_RELATION_ALREADY_EXISTS_ERRORCODE
static String
MYSQL_RELATION_ALREADY_EXISTS_SQLSTATE
static String
POSTGRES_RELATION_ALREADY_EXISTS_SQLSTATE
static int
SQLSERVER_INDEX_ALREADY_EXISTS_ERRORCODE
static int
SQLSERVER_RELATION_ALREADY_EXISTS_ERRORCODE
-
Constructor Summary
Constructors Constructor Description HibernateAlterTableExecutor(HibernateDatabaseCapabilities databaseCapabilities, DdlExecutor ddlExecutor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
alterTable(String tableName, List<? extends AlterTableCommand> commands)
Perform a set of table altering actions on a given table.AddUniqueConstraintCommand
createAddUniqueConstraintCommand(String constraintName, String... columnNames)
AlterColumnNullabilityCommand
createAlterColumnNullChoiceCommand(String columnName, String oldDataType, NullChoice nullChoice)
DropUniqueConstraintByColumnsCommand
createDropUniqueConstraintByColumnsCommand(String... columnNames)
Drop constraints by column names.DropUniqueConstraintCommand
createDropUniqueConstraintCommand(String constraintName)
DropUniqueConstraintCommand
createDropUniqueConstraintIfExistsCommand(String constraintName)
List<String>
getAlterTableStatements(String tableName, List<? extends AlterTableCommand> commands)
-
-
-
Field Detail
-
POSTGRES_RELATION_ALREADY_EXISTS_SQLSTATE
public static final String POSTGRES_RELATION_ALREADY_EXISTS_SQLSTATE
- See Also:
- Constant Field Values
-
MYSQL_RELATION_ALREADY_EXISTS_SQLSTATE
public static final String MYSQL_RELATION_ALREADY_EXISTS_SQLSTATE
- See Also:
- Constant Field Values
-
MYSQL_RELATION_ALREADY_EXISTS_ERRORCODE
public static final int MYSQL_RELATION_ALREADY_EXISTS_ERRORCODE
- See Also:
- Constant Field Values
-
SQLSERVER_INDEX_ALREADY_EXISTS_ERRORCODE
public static final int SQLSERVER_INDEX_ALREADY_EXISTS_ERRORCODE
- See Also:
- Constant Field Values
-
SQLSERVER_RELATION_ALREADY_EXISTS_ERRORCODE
public static final int SQLSERVER_RELATION_ALREADY_EXISTS_ERRORCODE
- See Also:
- Constant Field Values
-
HSQLDB_RELATION_ALREADY_EXISTS_SQLSTATE
public static final String HSQLDB_RELATION_ALREADY_EXISTS_SQLSTATE
- See Also:
- Constant Field Values
-
HSQLDB_RELATION_ALREADY_EXISTS_ERRORCODE
public static final int HSQLDB_RELATION_ALREADY_EXISTS_ERRORCODE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
HibernateAlterTableExecutor
public HibernateAlterTableExecutor(HibernateDatabaseCapabilities databaseCapabilities, DdlExecutor ddlExecutor)
- Since:
- 7.13.17
-
-
Method Detail
-
createAlterColumnNullChoiceCommand
public AlterColumnNullabilityCommand createAlterColumnNullChoiceCommand(String columnName, String oldDataType, NullChoice nullChoice)
- Specified by:
createAlterColumnNullChoiceCommand
in interfaceAlterTableExecutor
-
createAddUniqueConstraintCommand
public AddUniqueConstraintCommand createAddUniqueConstraintCommand(String constraintName, String... columnNames)
- Specified by:
createAddUniqueConstraintCommand
in interfaceAlterTableExecutor
-
createDropUniqueConstraintCommand
public DropUniqueConstraintCommand createDropUniqueConstraintCommand(String constraintName)
- Specified by:
createDropUniqueConstraintCommand
in interfaceAlterTableExecutor
-
createDropUniqueConstraintIfExistsCommand
public DropUniqueConstraintCommand createDropUniqueConstraintIfExistsCommand(String constraintName)
- Specified by:
createDropUniqueConstraintIfExistsCommand
in interfaceAlterTableExecutor
-
createDropUniqueConstraintByColumnsCommand
public DropUniqueConstraintByColumnsCommand createDropUniqueConstraintByColumnsCommand(String... columnNames)
Description copied from interface:AlterTableExecutor
Drop constraints by column names. This operation is presently only supported for Oracle.- Specified by:
createDropUniqueConstraintByColumnsCommand
in interfaceAlterTableExecutor
- Parameters:
columnNames
- The names of the columns that make up the unique constraint
-
alterTable
public void alterTable(String tableName, List<? extends AlterTableCommand> commands)
Description copied from interface:AlterTableExecutor
Perform a set of table altering actions on a given table. On some databases such as PostgreSQL this is combined into a single statement automatically. On other databases such as HSQLDB, each alter action is executed as a separate statement.- Specified by:
alterTable
in interfaceAlterTableExecutor
- Parameters:
tableName
- Name of the table to altercommands
- A collection of alter table actions to perform
-
getAlterTableStatements
public List<String> getAlterTableStatements(String tableName, List<? extends AlterTableCommand> commands)
- Specified by:
getAlterTableStatements
in interfaceAlterTableExecutor
-
-