com.xpn.xwiki.store.migration.hibernate
Class R35101XWIKI7645DataMigration

java.lang.Object
  extended by com.xpn.xwiki.store.migration.hibernate.AbstractHibernateDataMigration
      extended by com.xpn.xwiki.store.migration.hibernate.R35101XWIKI7645DataMigration
All Implemented Interfaces:
DataMigration, HibernateDataMigration

@Component
@Named(value="R35101XWIKI7645")
@Singleton
public class R35101XWIKI7645DataMigration
extends AbstractHibernateDataMigration

Migration for XWIKI-7564: Manually change the SQL type of long binary columns from LONG RAW to proper BLOBs when the underlying database is Oracle. More specifically, this migrator changes the attachment content and attachment archive columns from LONG RAW to BLOB, and rebuilds the indexes on those tables afterwards. The columns must be switched to BLOB since this is the expected column type when using the new mapping files. Rebuilding the indexes is needed because changing a table's columns automatically invalidates the indexes on those tables, and with unusable indexes any new insertion in those tables will trigger an exception.

Since:
3.5.1
Version:
$Id: 2697809291ee7dd0ecfe72515744d636189cc5f4 $

Field Summary
 
Fields inherited from class com.xpn.xwiki.store.migration.hibernate.AbstractHibernateDataMigration
componentManager
 
Constructor Summary
R35101XWIKI7645DataMigration()
           
 
Method Summary
 String getDescription()
           
 XWikiDBVersion getVersion()
           
 void hibernateMigrate()
          Execute the migration itself.
 boolean shouldExecute(XWikiDBVersion startupVersion)
           
 
Methods inherited from class com.xpn.xwiki.store.migration.hibernate.AbstractHibernateDataMigration
getLiquibaseChangeLog, getName, getPreHibernateLiquibaseChangeLog, getStore, getXWikiContext, migrate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

R35101XWIKI7645DataMigration

public R35101XWIKI7645DataMigration()
Method Detail

getDescription

public String getDescription()
Returns:
a description of what the data migration does

getVersion

public XWikiDBVersion getVersion()
Returns:
data version which need migration. before you commit stuff which needs migration, you need write data migration with version = current release number (i.e 32000 for release 3.2).

shouldExecute

public boolean shouldExecute(XWikiDBVersion startupVersion)
Specified by:
shouldExecute in interface DataMigration
Overrides:
shouldExecute in class AbstractHibernateDataMigration
Parameters:
startupVersion - the database version when the migration process starts (before any dataMigration is applied). This is useful for data migration which need to run only when the database is in a certain version.
Returns:
true if the migration should be executed or false otherwise

hibernateMigrate

public void hibernateMigrate()
                      throws DataMigrationException,
                             XWikiException
Description copied from class: AbstractHibernateDataMigration
Execute the migration itself.

Specified by:
hibernateMigrate in class AbstractHibernateDataMigration
Throws:
DataMigrationException - on migration error.
XWikiException - on error from the store.


Copyright © 2004–2014 XWiki. All rights reserved.