Appendix L. Things to consider when updating an existing BASE installation

Table of Contents

L.1. BASE 2.9 release
L.2. BASE 2.7.2 release
L.3. BASE 2.7 release
L.4. BASE 2.4.4 release

This document is a complete list of things that may have to be considered when updating a BASE installation to a newer version. The Section 21.1, “Upgrade instructions” section only include the most recent information that is needed for updating the previous BASE version to the current version.

L.1. BASE 2.9 release

BASE 2.9 must use a database that supports UTF-8

If you are upgrading from BASE 2.8 or lower and your existing database is not using UTF-8 you must convert the database to UTF-8 before you execute the ./updatedb.sh script.

BASE 2.9 includes a utility that can convert an existing MySQL database. After installing the BASE 2.9 files, but before running the ./updatedb.sh script, execute the following on the command line:


cd <base-dir>/bin
./onetimefix.sh utf8 -x

The -x option makes the script update the database immediately. You can leave this option out to have it generate a SQL script file (convert-to-utf8.sql) instead. The script will by default not try to convert tables that it already thinks are using UTF-8. If the script for some reason is incorrect when detecting this, you can use the option -f to force conversion of all tables.

The conversion utility only works with MySQL. PostgreSQL users should instead use a backup and restore using as described in the PostgreSQL manual. Eg. dump the existing BASE database, create a new database that uses UTF8 and restore the backup into the new database.

L.2. BASE 2.7.2 release

Bug in the LOWESS plug-in affecting BASE version 2.0 -- 2.7.1

BASE 2.7.2 fixes a serious bug in the LOWESS plug-in shipped as a part of the BASE package. The bug is found in all BASE versions between 2.0 and 2.7.1, and has caused incorrect normalization values to be calculated. All data that has been normalized with the LOWESS plug-in prior to BASE 2.7.2 should be considered invalid and needs to be re-normalized with the fixed version. Downstream analysis steps that has used the incorrectly normalized data also needs to be redone. For more information about the bug see http://base.thep.lu.se/ticket/1077

BASE 2.7.2 includes a utility for finding all experiments/bioassay sets that includes data normalized with the LOWESS plug-in. An administrator can use this utility to extract a list of all experiments/bioassay sets that needs to be fixed. The utility can also tag the name of the found experiments/bioassay sets with FIX LOWESS to make it easier to find data that needs to be fixed.

The utility can't see any difference between data normalized with the old version and the fixed version. It will simply report all data that has been normalized with the LOWESS plug-in. Only use the utility a single time right after the upgrade to BASE 2.7.2.

The utility is a command line program that should be executed on the BASE application (web) server.


cd <base-dir>/bin
./onetimefix.sh lowess_warn -u <login> -p <password> -f

We recommend running the utility as the root user. The -f option is optional. If it is included the found experiments/bioassay sets are tagged with FIX LOWESS, otherwise only a list with the information is generated.

L.3. BASE 2.7 release

BASE 2.7 requires Tomcat 6 or higher

If you are upgrading from older BASE versions to BASE 2.7 or higher you must also make sure that you are running Tomcat 6 or higher. Earlier BASE versions only required Tomcat 5.5. If you are not already running Tomcat 6 you need to upgrade. Other servlet engines may work if they implement the Servlet 2.5 and JSP 2.1 specifications.

L.4. BASE 2.4.4 release

Upgrading from BASE 2.4.3 or lower to 2.4.4 or higher

Older releases of BASE 2 used to create indexes for many columns in the dynamic database. The same columns are part of the primary key for the tables so the indexes are not really needed. The result is very bad performance since the database engine sometimes get stuck in "index update" mode making the entire server very slow. BASE 2.4.4 no longer creates the indexes. Indexes on existing tables should be dropped to increase the performance. Tests have shown a 50-90% decrease in execution time for some plug-ins (http://base.thep.lu.se/ticket/294).

Removing the indexes is very simple. After the server has been upgraded following the usual instructions below, issue the the following commands:

cd <basedir>/bin
./dynamicdb.sh -v -dropindexes

Skip the -dropindexes option to do a dry run without actually deleting the indexes.