
Originally published on 2010-03-17; fully revised and updated.
This guide covers the legacy upgrade path from Continuum 1.2.x to the 1.3.x line. It is intended for administrators who need a safe migration of build history and metadata, with explicit steps for export/import, environment variable changes, and post-import database sequence checks.
What changes in this upgrade path
According to the original upgrade notes, two Continuum databases matter during migration: the builds database and the users database.
- From 1.2.x to 1.3.2, the users database is described as unchanged, so it can be reused.
- The builds database has model changes and should be migrated through the Data Management CLI export/import process.
- If you used
APP_BASEin 1.2, rename it toCONTINUUM_BASEin 1.3. - For 1.3.4 and above, Jetty was upgraded; if base and install directories are separated, update library entries in
$CONTINUUM_BASE/conf/wrapper.conffrom the new distribution.
Upgrade workflow
flowchart TD
A[Stop old Continuum] --> B[Export builds data to XML]
B --> C[Start new Continuum once to create schema]
C --> D[Stop new Continuum]
D --> E[Import builds XML into new schema]
E --> F{Import source is 1.3.1}
F -- yes --> G[Import without strict]
F -- no --> H[Import with strict]
G --> I[Verify and fix SEQUENCE_TABLE NEXT_VAL]
H --> I[Verify and fix SEQUENCE_TABLE NEXT_VAL]
I --> J[Start new Continuum and validate]
Pick the correct Data Management CLI version
You need one CLI version suitable for exporting from the old schema and one for importing into the new schema.
| CLI JAR version | Use it for | Download URL |
|---|---|---|
| 1.3.2 | Import into Continuum 1.3.2-era schema | data-management-cli-1.3.2-app.jar |
| 1.2.3.1 | Export from 1.2.2 or 1.2.3 (workaround for bug in 1.2/1.2.2/1.2.3 tools) | data-management-cli-1.2.3.1-app.jar |
| 1.1 | Export from 1.2 | data-management-cli-1.1-app.jar |
Export builds data from the old Continuum instance
- Stop the old Continuum instance.
- Run the export command to produce
builds.xmlin a backup directory.
java -Xmx512m -jar data-management-cli-1.2.x-app.jar -buildsJdbcUrl jdbc:derby:${old.continuum.home}/data/databases/continuum -mode EXPORT -directory backups
Replace the JAR filename with the exact exporter version you downloaded (for example, 1.2.3.1 or 1.1 as mapped above).
Import builds data into the new Continuum instance
- Start the new Continuum version once so it creates the target schema.
- Do not configure it yet; stop it again.
- Run the import command against the new builds database.
java -Xmx512m -jar data-management-cli-1.3.2-app.jar -buildsJdbcUrl jdbc:derby:${new.continuum.home}/data/databases/continuum -mode IMPORT -directory backups -strictCode language: JavaScript (javascript)
Note: If importing from 1.3.1 to 1.3.x, remove -strict to ignore unrecognized tags caused by model differences.
Verify and repair SEQUENCE_TABLE values
Before first startup after import, connect with a SQL client such as SQuirreL SQL and confirm that every NEXT_VAL in SEQUENCE_TABLE is greater than the maximum ID in its corresponding table.
Example SQL from the original guide:
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(systemconfiguration_id)+1 from SYSTEMCONFIGURATION) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.system.SystemConfiguration';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from BUILDQUEUE) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.project.BuildQueue';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from SCHEDULE) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.project.Schedule';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from BUILDDEFINITION) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.project.BuildDefinition';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from LOCALREPOSITORY) WHERE SEQUENCE_NAME='org.apache.continuum.model.repository.LocalRepository';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from PROJECTGROUP) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.project.ProjectGroup';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(scmresult_id)+1 from SCMRESULT) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.scm.ScmResult';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(projectdependency_id)+1 from PROJECTDEPENDENCY) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.project.ProjectDependency';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from BUILDDEFINITIONTEMPLATE) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.project.BuildDefinitionTemplate';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from ABSTRACTPURGECONFIGURATION) WHERE SEQUENCE_NAME='org.apache.continuum.model.repository.AbstractPurgeConfiguration';Code language: JavaScript (javascript)
Final startup and validation
- Start the new Continuum instance.
- Confirm user authentication against the existing users database.
- Run a sample build and verify new build records are written correctly.
- If IDs collide or inserts fail, re-check
SEQUENCE_TABLEvalues.
Common pitfalls
- Using the wrong export CLI version for 1.2.x source databases.
- Forgetting to rename
APP_BASEtoCONTINUUM_BASE. - Skipping
wrapper.conflibrary updates when moving to 1.3.4+ with separate base/install directories. - Importing with
-strictwhen source data contains tags not recognized by target schema. - Starting Continuum before fixing sequence values after import.
Reference: http://continuum.apache.org/docs/1.3.6/installation/upgrade.html
I’m Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms.
I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services — all in one place.
Explore Hospitals