blob: c2c1cf70d764d22a8c68756e9b37a6148f8aed40 [file] [log] [blame]
------
Upgrade
------
Olivier Lamy
Emmanuel Venisse
------
Sep 10 2008
------
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 {{{http://jira.codehaus.org/browse/CONTINUUM-1688}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)
+------------------------------------------+
* Download The Tool
The tool is a standalone jar that you can download from the central repo.
You will need to download 2 versions of the tool, one for the export out of the old version and one for the import into the new version:
* {{http://repo1.maven.org/maven2/org/apache/maven/continuum/data-management-cli/1.1-beta-3/data-management-cli-1.1-beta-3-app.jar}}
* {{http://repo1.maven.org/maven2/org/apache/maven/continuum/data-management-cli/1.1-beta-4/data-management-cli-1.1-beta-4-app.jar}}
* {{http://repo1.maven.org/maven2/org/apache/maven/continuum/data-management-cli/1.1/data-management-cli-1.1-app.jar}}
* {{http://repo1.maven.org/maven2/org/apache/maven/continuum/data-management-cli/1.2/data-management-cli-1.2-app.jar}}
The first version of this tool is 1.1-beta-2
* 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 {{{http://squirrel-sql.sourceforge.net/}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
+------------------------------------------+