Synchronize Environments - BloomReach Experience - Open Source CMS

This article covers a Hippo CMS version 11. There's an updated version available that covers our most recent release.

04-07-2016

Synchronize Environments

Introduction

Goal

Synchronize two environments S and T so that T is in the same state as S.

Use Case

There are multiple use cases for sychronizing environments, but a common one is to synchronize a test environment with the actual production environment, so that the former is in the exact same state as the latter and as such can be used as a realistic test environment for e.g. an upgrade of the CMS.

Strategy

The strategy to synchronize environment T with environment S is straighforward: the database in S is backed up, and the backup is subsequently restored in T.

Procedure

  1. Backup the database in the source environment (S). It is not needed to stop Hippo CMS instances running in S.
  2. Export from the target CMS Console (T) the following nodes and any other environment specific configuration that needs to be preserved:
    /hippo:configuration/hippo:users
    /hst:hst/hst:hosts
    /targeting:targeting/targeting:datastores
    /hippo:configuration/hippo:groups
    /hippo:configuration/hippo:domains/everywhere/hippo:authrole
  3. Stop the Hippo CMS instances in the target environment (T).
  4. Remove the Jackrabbit index from the target environment (T).
    The default location of the index folder is ${catalina.base}/../repository/workspaces/default/index.
  5. Import the previously backed up database from the source environment (S) into the target environment (T).
  6. Truncate the following tables in the target database:
    REPOSITORY_LOCAL_REVISIONS
    REPOSITORY_JOURNAL
  7. Start the CMS in the target environment (T) and wait for the repository to finish indexing.

  8. In the target environment (T) use the Console to restore the nodes that were previously exported.

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?