Old Release

This documentation relates to an old version of DSpace, version 4.x. Looking for another version? See all documentation.

This DSpace release is end-of-life and is no longer supported.

This section describes how to upgrade a DSpace installation from one version to the next. Details of the differences between the functionality of each version are given in the Version History section.

Test Your Upgrade Process

In order to minimize downtime, it is always recommended to first perform a DSpace upgrade using a Development or Test server. You should note any problems you may have encountered (and also how to resolve them) before attempting to upgrade your Production server. It also gives you a chance to "practice" at the upgrade. Practice makes perfect, and minimizes problems and downtime. Additionally, if you are using a version control system, such as subversion or git, to manage your locally developed features or modifications, then you can do all of your upgrades in your local version control system on your Development server and commit the changes. That way your Production server can just checkout your well tested and upgraded code.

If you are upgrading across multiple versions

You should perform all of the steps of each upgrade between the version from which you are starting and the version to which you are upgrading. You do not need to install each intervening version, but you do need to carry out all of the configuration changes and additions, and all of the database updates, for each one. For example, when upgrading from 1.6.x to 1.8.x, you need to perform the configuration & database upgrade steps detailed in Upgrading From 1.6.x to 1.7.x followed by those detailed in Upgrading From 1.7.x to 1.8.x.

For examples see: Multi-Version Upgrade Tips and Tricks

  • No labels

1 Comment

  1. TODO: when upgrading from an older DSpace version to 4.x, you MUST build from a clean checkout or use "mvn clean package". Otherwise, the old lucene-*-3.5.0.jar files will remain in [dspace-source]/dspace/target/dspace-4.0-build/**/lib/ and will be transferred to [dspace]/**/lib, where they make take preference before the 4.4 jars and that will cause this problem:

    SEVERE: org.apache.solr.common.SolrException: Invalid luceneMatchVersion '4.4', valid values are: [LUCENE_20, LUCENE_21, LUCENE_22, LUCENE_23, LUCENE_24, LUCENE_29, LUCENE_30, LUCENE_31, LUCENE_32, LUCENE_33, LUCENE_34, LUCENE_35, LUCENE_CURRENT] or a string in format 'V.V'
    at org.apache.solr.core.Config.parseLuceneVersionString(Config.java:353)
    at org.apache.solr.core.Config.getLuceneVersion(Config.java:337)
    at org.apache.solr.core.SolrConfig.<init>(SolrConfig.java:133)
    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:435)
    at org.apache.solr.core.CoreContainer.load(CoreContainer.java:316)
    at org.apache.solr.core.CoreContainer.load(CoreContainer.java:207)
    at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:130)
    at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:94)
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4649)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5305)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:650)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1582)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:679)
    Caused by: java.lang.IllegalArgumentException: No enum const class org.apache.lucene.util.Version.LUCENE_44
    at java.lang.Enum.valueOf(Enum.java:214)
    at org.apache.lucene.util.Version.valueOf(Version.java:32)
    at org.apache.solr.core.Config.parseLuceneVersionString(Config.java:351)
    ... 25 more