Old Release

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

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

In the notes below [dspace] refers to the install directory for your existing DSpace installation, and [dspace-source] to the source directory for DSpace 3.0. Whenever you see these path references, be sure to replace them with the actual path names on your local system. You should also check the DSpace Release 3.0 Notes to see what changes are in this version.

Changes to the DSpace 3.0 Upgrade / Configuration Process

In DSpace 3.0 there have been a few significant changes to how you upgrade and configure DSpace. Notably:

  • A build.properties file has been introduced: This file provides a convenient place to set the most commonly used configuration properties held in dspace.cfg. For a more detailed explanation please refer to the Installation and Configuration sections.

Backup your DSpace

Before you start your upgrade, it is strongly recommended that you create a backup of your DSpace instance. Backups are easy to recover from; a botched install/upgrade is very difficult if not impossible to recover from. The DSpace specific things to backup are: configs, source code modifications, database, and assetstore. On your server that runs DSpace, you might additionally consider checking on your cron/scheduled tasks, servlet container, and database.

Make a complete backup of your system, including:

  • Database: Make a snapshot/dump of the database. For the PostgreSQL database use Postgres' pg_dump command. For example:

    pg_dump -U [database-user] -f [backup-file-location] [database-name]
  • Assetstore: Backup the directory ([dspace]/assetstore by default, and any other assetstores configured in the [dspace]/config/dspace.cfg "assetstore.dir" and "assetstore.dir.#" settings)
  • Configuration: Backup the entire directory content of [dspace]/config.
  • Customizations: If you have custom code, such as themes, modifications, or custom scripts, you will want to back them up to a safe location.

Upgrade Steps

  1. Download DSpace 3.0: Either download DSpace 3.0 from DSpace.org or check it out directly from the Github repository. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to Installation Instructions, Step 3 for unpacking directives.
  2. Merge any customizations. If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. Customizations are typically housed in one of the following places:
    • JSPUI modifications: [dspace-source]/dspace/modules/jspui/src/main/webapp/
    • XMLUI modifications: [dspace-source]/dspace/modules/xmlui/src/main/webapp/
    • Config modifications: [dspace]/config
  3. Edit the build.properties file ([dspace-source]/build.properties).  This new configuration file allows for an easier way to quickly configure your primary DSpace settings before building DSpace.  It provides a subset of the most important configurations you may wish to make for your DSpace installation.  Any settings changed in this build.properties file are automatically copied over to the final dspace.cfg file during the "Build DSpace" process (in the next step).  For more information on the build.properties file, see "The build.properties Configuration Properties File" section of the Configuration documentation.


  4. Build DSpace. Run the following commands to compile DSpace:

    cd [dspace-source]/dspace/
    mvn -U clean package

    You will find the result in [dspace-source]/dspace/target/dspace-[version]-build.dir . Inside this directory is the compiled binary distribution of DSpace. Before rebuilding DSpace ('package'), the above command will clean out any previously compiled code ('clean') and ensure that your local DSpace JAR files are updated from the remote maven repository.

  5. Stop Tomcat. Take down your servlet container. For Tomcat, use the $CATALINA_HOME/shutdown.sh script. (Many Unix-based installations will have a startup/shutdown script in the /etc/init.d or /etc/rc.d directories.)
  6. Update DSpace.
    1. Update the DSpace installed directory with the new code and libraries. Issue the following commands:

      cd [dspace-source]/dspace/target/dspace-[version]-build.dir
      ant update
    2. Please run one of the following scripts to update your database:-
        • PostgreSQL: [dspace-source]/dspace/etc/postgres/database_schema_18-3.sql
        • Oracle: [dspace-source]/dspace/etc/oracle/database_schema_18-3.sql
  7. Update your DSpace Configurations. As necessary, you may wish to review the settings in  [dspace]/config/dspace.cfg and all configurations under [dspace]/config/modules/.  This configuration settings can also be modified at any time in the future. You'd just need to restart Tomcat for any settings to take effect.


  8. Refresh Browse and Search Indexes. To do this, run the following command from your DSpace install directory (as the dspace user):

    [dspace]/bin/dspace index-init


    1. Refresh Discovery: If you are using Discovery (Solr) for search/browse, you will also need to refresh Discovery indexes by running the following command:

      [dspace]/bin/dspace update-discovery-index -f
  9. Update OAI-PMH indexes. DSpace 3.0 comes with a brand new OAI 2.0 Server which uses a Solr backend by default.  As such, it needs to have its indexes updated on a regular basis.  To update the OAI 2.0 indexes, you should run the following command:

    [dspace]/bin/dspace oai import

    Enable an OAI-PMH index cron job

    This same 'dspace oai import' command should also be run on a regular basis (e.g. via cron) to keep the OAI 2.0 indexes in sync. For more information, see the Scheduled Tasks section of the OAI 2.0 documentation.

    Using OAI-PMH but not SOLR?

    If you are using OAI-PMH, but do not yet have the Solr webapp ([dspace]/webapps/solr/) installed, you will need to:

    (1) EITHER Modify the default OAI 2.0 config file ([dspace]/config/modules/oai.cfg) to use a database backend. See: OAI 2.0 Server#UsingDatabase

    (2) OR install/enable Tomcat to use the DSpace Solr webapp ([dspace]/webapps/solr/), and optionally configure the OAI settings in [dspace]/config/modules/oai.cfg

  10. Change LDAPHierarchicalAuthentication to LDAPAuthentication. If you were using the LDAPHierarchicalAuthentication method in DSpace 1.8.x, you need to change your authentication plugin to LDAPAuthentication. The functionality from LDAPHierarchicalAuthentication is now part of LDAPAuthentication. This change should be made in [dspace]/config/modules/authentication.cfg in the plugin.sequence.org.dspace.authenticate.AuthenticationMethod property. LDAP configuration in [dspace]/config/modules/authentication-ldap.cfg remains the same, so you won't need to change anything. The only case (which should apply to a minority of users) when you do need to update your configuration is if you were using anonymous search (i.e. you were using LDAPHierarchicalAuthentication, but you didn't have search.user and search.password set); if that applies to you, edit [dspace]/config/modules/authentication-ldap.cfg and set:

    search.anonymous = true

    A new feature in 3.0 is that you can now put users into DSpace groups based on a part of their DN in LDAP. See the new login.groupmap.* options in Authentication Plugins#ConfiguringLDAPAuthentication.

  11. Deploy Web Applications. If necessary, copy the web applications files from your [dspace]/webapps directory to the subdirectory of your servlet container (e.g. Tomcat):

    cp -R [dspace]/webapps/* [tomcat]/webapps/

    See the installation guide for full details.

  12. Restart servlet container. Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.
  • No labels


  1. TODO: solr-statistics.cfg -> usage-statistics.cfg, elastic-search-statistics.cfg

    TODO: creating Solr oai core when updating using "ant update"

    TODO: common problems

    Problem: when runnung index-init


    Exception: No such column 'discoverable'
    java.lang.IllegalArgumentException: No such column 'discoverable'

    Explanation: you didn't upgrade the database format (database_schema_18-3.sql)

  2. Errors finding local Maven repository:


    [INFO] ------------------------------------------------------------------------
    [INFO] Failed to resolve artifact.

    Unable to get dependency information:
    Unable to read local copy of metadata:
    Cannot read metadata from
    end tag name </body> must match start tag name <hr> from line 5 (position:
    TEXT seen ...</center>\r\n</body>... @6:8)

    from the specified remote repositories:
    central (http://repo1.maven.org/maven2),
    sonatype-nexus-snapshots (https://oss.sonatype.org/content/repositories/snapshots),
    sonatype-releases (http://oss.sonatype.org/content/repositories/releases/)


    Apache Maven 2.2.1 (rdebian-8)
    Java version: 1.6.0_32
    Java home: /usr/lib/jvm/java-6-openjdk-amd64/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux" version: "3.11.0-15-generic"
    arch: "amd64" Family: "unix"

    Fixed on:

    Apache Maven 3.0.4
    Maven home: /usr/share/maven
    Java version: 1.6.0_32, vendor: Sun Microsystems Inc.
    Java home: /usr/lib/jvm/java-6-openjdk-amd64/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "3.11.0-15-generic", arch: "amd64", family: "unix"

    1. BUGFIX: Error in Apache Maven 2.2.1 fixed in Apache Maven 3.0.5


      sudo apt-get remove maven

      sudo apt-get purge maven

      sudo apt-get remove maven2

      sudo apt-get purge maven2

      sudo apt-get autoremove

      sudo apt-get install maven