Upgrade Guide

1. General Information

Never install a new version of eXist into the same directory as an older version:

  1. Create a backup of your data. If the new version is binary compatible with the old version, keep the data directory (by default in webapp/WEB-INF/data) of the old version. Note: eXist needs to be stopped before copying files from the data dir.

  2. Install the new version into a different location.

  3. If the new version is binary compatible, replace the data directory of the new install with the one from the old one.

    Otherwise you need to do a full restore of the data.

2. Upgrading to 1.4.0

The 1.4 release is not binary compatible with the 1.2.x series. You need to backup/restore.

2.1. Special Notes

Indexing

eXist 1.2.x used to create a default full text index on all elements in the db. This has been disabled. The main reasons for this are:

  1. maintaining the default index costs performance and memory, which could be better used for other indexes. The index may grow very fast, which can be a destabilizing factor.
  2. the index is unspecific. The query engine cannot use it as efficiently as a dedicated index on a set of named elements or attributes. Carefully creating your indexes by hand will result in much better performance.

Please consider using the new Lucene-based full text index. However, if you need to switch back to the old behaviour to ensure backwards compatibility, just edit the system-wide defaults in conf.xml:

<index>
    <fulltext attributes="false" default="none">
        <exclude path="/auth"/>
    </fulltext>
</index>

Document Validation

Validation of XML documents during storage is now turned off by default in conf.xml:

<validation mode="no">

The previous auto setting was apparently too confusing for new users who did not know what to do if eXist refused to store a document due to failing validation. If you are familiar with validation, the use of catalog files and the like, feel free to set the default back to auto or yes.

Cocoon

eXist does no longer require Cocoon for viewing documentation and samples. Cocoon has been largely replaced by eXist's own URL rewriting and MVC framework.

Consequently, we now limit Cocoon to one directory of the web application (webapp/cocoon) and moved all the Cocoon samples in there. For the 1.4 final, we plan to completely remove Cocoon from the standard distribution, though we would like to continue to provide a separate eXist-as-Cocoon-block distribution.

November 2009
Wolfgang M. Meier
wolfgang at exist-db.org