com.atlassian.confluence.upgrade.upgradetask
Class HiLoIdRepairUpgradeTask

java.lang.Object
  extended by com.atlassian.confluence.upgrade.AbstractUpgradeTask
      extended by com.atlassian.confluence.upgrade.upgradetask.HiLoIdRepairUpgradeTask
All Implemented Interfaces:
DatabaseUpgradeTask, UpgradeTask

public class HiLoIdRepairUpgradeTask
extends AbstractUpgradeTask
implements DatabaseUpgradeTask

POSITION is a key word as far as HSQLDB 1.8 is concerned. Hence we need to rename it. however not many databases support a SQL rename command, so our first attempt involved trying to drop the column and add a new one it turns out that we cannot remove the POSITION column because it is part of composite primary key (and with values in the table, dropping the column will cause duplicate entries in the remaining PK column) further, hibernate's schemaUpdate autocreates the ANCESTORPOSITION column as part of the upgrade but fails to create it as a primary key -- not sure know why. instead of fighting with database dialects and integrity errors, we concluded its best and easier to just rename the table and allow schemaUpdate to create a new one this upgrade task handles the removal of the old table and the triggers off a populating of the new.


Constructor Summary
HiLoIdRepairUpgradeTask(com.atlassian.event.EventManager eventManager)
           
 
Method Summary
 void doNonDatabaseUpgrade()
          Perform any non-database related parts of the upgrade task.
 void doUpgrade()
          Perform the upgrade.
 String getBuildNumber()
           
 String getShortDescription()
          A short (<50 chars) description of the upgrade action
 void nonDatabaseValidate()
          Validate any non-database related parts of the upgrade task.
 void validate()
          Validates that this upgrade task can be performed.
 
Methods inherited from class com.atlassian.confluence.upgrade.AbstractUpgradeTask
addError, addError, getErrors, setBuildNumber
 
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
getErrors
 

Constructor Detail

HiLoIdRepairUpgradeTask

public HiLoIdRepairUpgradeTask(com.atlassian.event.EventManager eventManager)
Method Detail

getBuildNumber

public String getBuildNumber()
Specified by:
getBuildNumber in interface UpgradeTask
Overrides:
getBuildNumber in class AbstractUpgradeTask
Returns:
The build number that this upgrade is applicable to

getShortDescription

public String getShortDescription()
Description copied from interface: UpgradeTask
A short (<50 chars) description of the upgrade action

Specified by:
getShortDescription in interface UpgradeTask
Overrides:
getShortDescription in class AbstractUpgradeTask

validate

public void validate()
Description copied from interface: UpgradeTask
Validates that this upgrade task can be performed.

Specified by:
validate in interface UpgradeTask

doUpgrade

public void doUpgrade()
               throws Exception
Description copied from interface: UpgradeTask
Perform the upgrade.

Specified by:
doUpgrade in interface UpgradeTask
Throws:
Exception

nonDatabaseValidate

public void nonDatabaseValidate()
Description copied from interface: DatabaseUpgradeTask
Validate any non-database related parts of the upgrade task.

Specified by:
nonDatabaseValidate in interface DatabaseUpgradeTask

doNonDatabaseUpgrade

public void doNonDatabaseUpgrade()
Description copied from interface: DatabaseUpgradeTask
Perform any non-database related parts of the upgrade task. If the upgrade manager determines that the database has already been upgraded, it will call this method instead of UpgradeTask.doUpgrade(). This allows the upgrade task to perform any local non-db cleanup that might be involved in the upgrade.

Specified by:
doNonDatabaseUpgrade in interface DatabaseUpgradeTask


Copyright © 2003-2011 Atlassian. All Rights Reserved.