Upgrade

Goal

When upgrading Continuum, it could have some database model changes. This tool exports data from old database model and imports the data into the new database model.

There are 2 databases that need to be converted, one for the builds and one for the users.

Note If you are upgrading from 1.1 to 1.2, no upgrade tool is needed.

Due the fix of CONTINUUM-1688 :

  • if you use mssql server : you have to uncomment lines in a file in the webapp (WEB-INF/classes/META-INF/plexus/application.xml) (search mssql support).
  • if you use a 1.1 database you have to change manually the size of a column (in order to have the fix) :
    -- command tested with derby database
    alter table CHANGESET alter column CHANGECOMMENT SET DATA TYPE varchar(8192)  

Exporting Data from the old version

Follow these steps:

  • Stop the old version of continuum
  • Export the build and user data from the old version using the jar for the old version:
    java -Xmx512m -jar data-management-cli-1.1-beta-4-app.jar -buildsJdbcUrl jdbc:derby:${old.continuum.home}/data/continuum/database -mode EXPORT -directory backups
    java -Xmx512m -jar data-management-cli-1.1-beta-4-app.jar -usersJdbcUrl jdbc:derby:${old.continuum.home}/data/users/database -mode EXPORT -directory backups

Importing Data to the new version

Follow these steps:

  • Start the new version continuum to create the new data model.
  • Stop continuum
  • Run the specific steps for your version, described below
  • Import the build and user data into the new version using the jar for the new version:
    java -Xmx512m -jar data-management-cli-1.1-app.jar -buildsJdbcUrl jdbc:derby:${new.continuum.home}/data/continuum/database -mode IMPORT -directory backups
    java -Xmx512m -jar data-management-cli-1.2-app.jar -usersJdbcUrl jdbc:derby:${new.continuum.home}/data/users/database -mode IMPORT -directory backups
  • NEXT_VAL values in SEQUENCE_TABLE must be checked before restarting continuum
    • Normally, the SEQUENCE_TABLE is ok but in some cases the values are wrong.
    • Before starting Continuum for the first time after the import, connect to the db with a client like Squirrel SQL and check the values in the NEXT_VAL column.
    • Values must be greater than the max id value in each table.
    • For example, the next value of "org.apache.maven.continuum.model.Project" must be greater than the greatest id in Project table.
  • Start the new version of continuum.

Specific steps to do before import

1.1 import

Before to import from an older version (before 1.1-beta-4 to 1.1 final, you must open the builds.xml file under backup directory and remove all 'testResults' tags. You can remove them with the following XSL:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
 <xsl:template match="testResult"/>
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

And you can run it with this command:

xsltproc copy.xsl builds.xml > fixed-builds.xml