Class AddMissingUnmanagedUniqueConstraintsUpgradeTask
- java.lang.Object
-
- com.atlassian.confluence.upgrade.AbstractUpgradeTask
-
- com.atlassian.confluence.upgrade.upgradetask.AddMissingUnmanagedUniqueConstraintsUpgradeTask
-
- All Implemented Interfaces:
BackupSupport,DatabaseUpgradeTask,UpgradeTask,UpgradeTaskInfo,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanNameAware
public class AddMissingUnmanagedUniqueConstraintsUpgradeTask extends AbstractUpgradeTask implements DatabaseUpgradeTask
Because of CONFSERVER-38706, some unique constraints which are not managed by Hibernate have been missing for instances freshly installed with Confluence 5.6 - 5.8. Affected constraints can be found infindAllConstraints()} This Upgrade task aims to add all of them gracefully and seamlessly. Duplicates are removed if any before constraints are added.- Since:
- 7.1.0
-
-
Constructor Summary
Constructors Constructor Description AddMissingUnmanagedUniqueConstraintsUpgradeTask(ConstraintChecker constraintChecker, Deduper deduper, ConstraintCreator constraintCreator, com.atlassian.event.api.EventPublisher eventPublisher)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanbreaksBackwardCompatibility()Returns true if a new export can't be imported in an older instance.voidcleanup()voiddoUpgrade()Perform the upgrade.StringgetBuildNumber()StringgetShortDescription()A short (<50 chars) description of the upgrade actionvoidinit()voidonPluginFrameworkStartedEvent(AsyncPluginFrameworkStartedEvent ignored)booleanrunOnSpaceImport()Returns true if an older Space can't be imported in a new instance without running this task.-
Methods inherited from class com.atlassian.confluence.upgrade.AbstractUpgradeTask
addAllErrors, addError, addError, getConstraint, getErrors, getName, isDatabaseUpgrade, setBeanName, setBuildNumber, validate
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.atlassian.confluence.upgrade.UpgradeTask
getConstraint, getErrors, validate
-
Methods inherited from interface com.atlassian.confluence.upgrade.UpgradeTaskInfo
getName, isDatabaseUpgrade
-
-
-
-
Constructor Detail
-
AddMissingUnmanagedUniqueConstraintsUpgradeTask
public AddMissingUnmanagedUniqueConstraintsUpgradeTask(ConstraintChecker constraintChecker, Deduper deduper, ConstraintCreator constraintCreator, com.atlassian.event.api.EventPublisher eventPublisher)
-
-
Method Detail
-
runOnSpaceImport
public boolean runOnSpaceImport()
Description copied from interface:BackupSupportReturns true if an older Space can't be imported in a new instance without running this task. For example:- A task updating macro names in the BodyContent table would be blocking.
- Tasks which updates data related to the space would be blocking.
- A task upgrading the user table wouldn't be blocking.
- Adding a mandatory column on space-related content breaks space import
Note that tasks don't run on space import yet, so we just reject the import in this case.
- Specified by:
runOnSpaceImportin interfaceBackupSupport
-
breaksBackwardCompatibility
public boolean breaksBackwardCompatibility()
Description copied from interface:BackupSupportReturns true if a new export can't be imported in an older instance.Breaking compatibility means a snapshot of the new version will not work at all with the previous version. For example:
- A destructive operation (Some data is replaced by another) breaks backwards compatibility
- Adding a optional column does NOT break backwards compatibility
- Data is copied to another column doesn't breaks backwards compatibility
- A build number incrementation doesn't breaks backwards compatibility
- Specified by:
breaksBackwardCompatibilityin interfaceBackupSupport
-
getBuildNumber
public String getBuildNumber()
- Specified by:
getBuildNumberin interfaceUpgradeTaskInfo- Overrides:
getBuildNumberin classAbstractUpgradeTask- Returns:
- The build number that this upgrade is applicable to
-
getShortDescription
public String getShortDescription()
Description copied from interface:UpgradeTaskInfoA short (<50 chars) description of the upgrade action- Specified by:
getShortDescriptionin interfaceUpgradeTaskInfo- Overrides:
getShortDescriptionin classAbstractUpgradeTask
-
init
@PostConstruct public void init()
-
cleanup
@PreDestroy public void cleanup()
-
doUpgrade
public void doUpgrade() throws ExceptionDescription copied from interface:UpgradeTaskPerform the upgrade.- Specified by:
doUpgradein interfaceUpgradeTask- Throws:
Exception
-
onPluginFrameworkStartedEvent
@EventListener public void onPluginFrameworkStartedEvent(AsyncPluginFrameworkStartedEvent ignored)
-
-