To upgrade from DSpace 1.0.1 to 1.1, follow the steps below. Your dspace.cfg does not need to be changed. In the notes below [dspace] refers to the install directory for your existing DSpace installation, and [dspace-1.1-source] to the source directory for DSpace 1.1. Whenever you see these path references, be sure to replace them with the actual path names on your local system.

Upgrade Steps

  1. Take down Tomcat (or whichever servlet container you're using).
  2. We recommend that you upgrade to the latest version of PostgreSQL (7.3.2). Included are some notes to help you do this (see the postgres-upgrade-notes.txt file). Note you will also have to upgrade Ant to version 1.5 if you do this.
  3. Make the necessary changes to the DSpace database. These include a couple of minor schema changes, and some new indexes which should improve performance. Also, the names of a couple of database views have been changed since the old names were so long they were causing problems. First run psql to access your database (e.g. psql -U dspace -W and then enter the password), and enter these SQL commands:
    ALTER TABLE bitstream ADD store_number INTEGER;
    UPDATE bitstream SET store_number = 0;
    
    ALTER TABLE item ADD last_modified TIMESTAMP;
    CREATE INDEX last_modified_idx ON Item(last_modified);
    
    CREATE INDEX eperson_email_idx ON EPerson(email);
    CREATE INDEX item2bundle_item_idx on Item2Bundle(item_id);
    CREATE INDEX bundle2bitstream_bundle_idx ON
    	Bundle2Bitstream(bundle_id);
    CREATE INDEX dcvalue_item_idx on DCValue(item_id);
    CREATE INDEX collection2item_collection_idx ON
    	Collection2Item(collection_id);
    CREATE INDEX resourcepolicy_type_id_idx ON ResourcePolicy
    	(resource_type_id,resource_id);
    CREATE INDEX epersongroup2eperson_group_idx on
    	EPersonGroup2EPerson(eperson_group_id);
    CREATE INDEX handle_handle_idx ON Handle(handle);
    CREATE INDEX sort_author_idx on ItemsByAuthor(sort_author);
    CREATE INDEX sort_title_idx on ItemsByTitle(sort_title);
    CREATE INDEX date_issued_idx on ItemsByDate(date_issued);
    
    DROP VIEW CollectionItemsByDateAccessioned;
    
    DROP VIEW CommunityItemsByDateAccessioned;
    CREATE VIEW CommunityItemsByDateAccession as SELECT
    	Community2Item.community_id, ItemsByDateAccessioned.*  FROM
    	ItemsByDateAccessioned, Community2Item WHERE
    	ItemsByDateAccessioned.item_id = Community2Item.item_id;
    CREATE VIEW CollectionItemsByDateAccession AS SELECT
    	collection2item.collection_id,
    	itemsbydateaccessioned.items_by_date_accessioned_id,
    	itemsbydateaccessioned.item_id,
    	itemsbydateaccessioned.date_accessioned FROM itemsbydateaccessioned,
    	collection2item WHERE (itemsbydateaccessioned.item_id =
    	collection2item.item_id);
    
  4. Fix your JSPs for Unicode. If you've modified the site 'skin' (jsp/local/layout/header-default.jsp) you'll need to add the Unicode header, i.e.:
    <meta http-equiv="Content-Type" content="text/html;
    	charset=UTF-8">
    
    to the <HEAD> element. If you have any locally-edited JSPs, you need to add this page directive to the top of all of them:
    <%@ page contentType="text/html;charset=UTF-8" %>
    
    (If you haven't modified any JSPs, you don't have to do anything.)
  5. Copy the required Java libraries that we couldn't include in the bundle to the source tree. For example:
    cd  [dspace]/lib
    cp *.policy activation.jar servlet.jar mail.jar
    	[dspace-1.1-source]/lib
    
  6. Compile up the new DSpace code, replacing [dspace]/config/dspace.cfg with the path to your current, LIVE configuration. (The second line, touch `find .`, is a precaution, which ensures that the new code has a current datestamp and will overwrite the old code. Note that those are back quotes.)
    cd  [dspace-1.1-source]
    touch `find .`
    ant
    ant -Dconfig= [dspace]/config/dspace.cfg update
    
  7. Update the database tables using the upgrader tool, which sets up the new >last_modified date in the item table:
    Run  [dspace]/bin/dsrun
    	org.dspace.administer.Upgrade101To11
    
  8. Run the collection default authorization policy tool:
    [dspace]/bin/dsrun
    	org.dspace.authorize.FixDefaultPolicies
    
  9. Fix the OAICat properties file. Edit [dspace]/config/templates/oaicat.properties. Change the line that says
    Identify.deletedRecord=yes
    
    To:
    Identify.deletedRecord=persistent
    
    This is needed to fix the OAI-PMH 'Identity' verb response. Then run [dspace]/bin/install-configs.
  10. Re-run the indexing to index abstracts and fill out the renamed database views:
    [dspace]/bin/index-all
    
  11. Restart Tomcat. Tomcat should be run with the following environment variable set, to ensure that Unicode is handled properly. Also, the default JVM memory heap sizes are rather small. Adjust -Xmx512M (512Mb maximum heap size) and -Xms64M (64Mb Java thread stack size) to suit your hardware.
    JAVA_OPTS="-Xmx512M -Xms64M -Dfile.encoding=UTF-8"