Prepare Bloomreach Experience Manager v13 Project for Upgrade to v14

H2 database upgrade

When developing with a local Cargo environment, repository data is stored in a folder on the hard drive, typically named storage. It is a best practice to store this folder outside the project's target folder in order to retain repository data across Maven rebuilds and speed up application start time.

In Bloomreach Experience Manager version 13, H2 version 1.3.x was used. In Bloomreach Experience Manager version 14, H2 has been upgraded to version 1.4.x which uses a new storage format that is  backward-incompatible with 1.1.x. Because of this incompatibility, developers must prepare the project and delete and (if desired) recreate any existing storage folders with H2 databases before upgrading.

Upgrade v13 project to H2 1.4.x before upgrade

The Configuration Verifier (used in the upgrade process to compare the repository data before and after the project upgrade) requires the 'old' and 'new' database to use the same format. Therefore, the old project must be configured to use H2 1.4.x before the upgrade.

Modify the Bloomreach Experience Manager 13 project root pom.xml to add both the following h2.database.version property and dependency management overrides:

   <properties>
     ...
     <h2.database.version>1.4.199</h2.database.version>
     ...
   </properties>
   <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>${h2.database.version}</version>
      <scope>runtime</scope>
    </dependency>

Delete and rebuild local H2 database storage folders

Delete any existing local H2 storage folders for the Bloomreach Experience Manager 13 project. They are now incompatible and can't be used anymore.

Build and start the Bloomreach Experience Manager 13 project to create and bootstrap the local repository using the H2 v1.4.x format.

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?