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:
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:
- Assetstore: Backup the directory (
[dspace]/assetstoreby 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
- Customizations: If you have custom code, such as themes, modifications, or custom scripts, you will want to back them up to a safe location.
- 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.
- 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:
- XMLUI modifications:
- Config modifications:
- JSPUI modifications:
- 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.propertiesfile are automatically copied over to the final
dspace.cfgfile 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.
Build DSpace. Run the following commands to compile DSpace:
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.
- Stop Tomcat. Take down your servlet container. For Tomcat, use the
$CATALINA_HOME/shutdown.shscript. (Many Unix-based installations will have a startup/shutdown script in the
- Update DSpace.
Update the DSpace installed directory with the new code and libraries. Issue the following commands:
- Please run one of the following scripts to update your database:-
and all configurations under ]/config/dspace.cfg
. 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. ]/config/modules/
Refresh Browse and Search Indexes. To do this, run the following command from your DSpace install directory (as the dspace user):
Refresh Discovery: If you are using Discovery (Solr) for search/browse, you will also need to refresh Discovery indexes by running the following command:
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:
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
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.password set); if that applies to you, edit
[dspace]/config/modules/authentication-ldap.cfg and set:
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.
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):
See the installation guide for full details.