Upgrade a Harper Instance
This document describes best practices for upgrading self-hosted Harper instances. Harper can be upgraded using a combination of npm and built-in Harper upgrade scripts. Whenever upgrading your Harper installation it is recommended you make a backup of your data first. Note: This document applies to self-hosted Harper instances only. All Harper Cloud instances will be upgraded by the Harper Cloud team.
Upgrading
Upgrading Harper is a two-step process. First the latest version of Harper must be downloaded from npm, then the Harper upgrade scripts will be utilized to ensure the newest features are available on the system.
Install the latest version of Harper using
npm install -g harperdb
.Note
-g
should only be used if you installed Harper globally (which is recommended).Run
harperdb
to initiate the upgrade process.Harper will then prompt you for all appropriate inputs and then run the upgrade directives.
Node Version Manager (nvm)
Node Version Manager (nvm) is an easy way to install, remove, and switch between different versions of Node.js as required by various applications. More information, including directions on installing nvm can be found here: https://nvm.sh/.
Harper supports Node.js versions 14.0.0 and higher, however, please check our NPM page for our recommended Node.js version. To install a different version of Node.js with nvm, run the command:
To switch to a version of Node run:
To see the current running version of Node run:
With a handful of different versions of Node.js installed, run nvm with the ls
argument to list out all installed versions:
When upgrading Harper, we recommend also upgrading your Node version. Here we assume you're running on an older version of Node; the execution may look like this:
Switch to the older version of Node that Harper is running on (if it is not the current version):
Make sure Harper is not running:
Uninstall Harper. Note, this step is not required, but will clean up old artifacts of Harper. We recommend removing all other Harper installations to ensure the most recent version is always running.
Switch to the newer version of Node:
Install Harper globally
Run the upgrade script
Start Harper
Upgrading Nats to Plexus 4.4
To upgrade from NATS clustering to Plexus replication, follow these manual steps. They are designed for a fully replicating cluster to ensure minimal disruption during the upgrade process.
The core of this upgrade is the bridge node. This node will run both NATS and Plexus simultaneously, ensuring that transactions are relayed between the two systems during the transition. The bridge node is crucial in preventing any replication downtime, as it will handle transactions from NATS nodes to Plexus nodes and vice versa.
Enabling Plexus
To enable Plexus on a node that is already running NATS, you will need to update two values in the harperdb-config.yaml
file:
replication.url
– This should be set to the URL of the current Harper instance.
replication.hostname
– Since we are upgrading from NATS, this value should match the clustering.nodeName
of the current instance.
Upgrade Steps
Set up the bridge node:
Choose one node to be the bridge node.
On this node, follow the "Enabling Plexus" steps from the previous section, but do not disable NATS clustering on this instance.
Stop the instance and perform the upgrade.
Start the instance. This node should now be running both Plexus and NATS.
Upgrade a node:
Choose a node that needs upgrading and enable Plexus by following the "Enable Plexus" steps.
Disable NATS by setting
clustering.enabled
tofalse
.Stop the instance and upgrade it.
Start the instance.
Call
add_node
on the upgraded instance. In this call, omitsubscriptions
so that a fully replicating cluster is built. The target node for this call should be the bridge node. Note: depending on your setup, you may need to expand thisadd_node
call to include authorization and/or tls information.
Repeat Step 2 on all remaining nodes that need to be upgraded.
Disable NATS on the bridge node by setting
clustering.enabled
tofalse
and restart the instance.
Your cluster upgrade should now be complete, with no NATS processes running on any of the nodes.
Last updated