Upgrade a HarperDB Instance

This document describes best practices for upgrading self-hosted HarperDB instances. HarperDB can be upgraded using a combination of npm and built in HarperDB upgrade scripts.  Whenever upgrading your HarperDB installation it is recommended you make a backup of your data first.
Note: This document applies to self-hosted HarperDB instances only. All HarperDB Cloud instances will be upgraded by the HarperDB Cloud team.

Upgrading

Upgrading HarperDB is a two step process. First the latest version of HarperDB must be downloaded from npm, then the HarperDB upgrade scripts will be utilized to ensure the newest features are available on the system.

  1. Install the latest version of HarperDB using npm install -g harperdb.
    Note -g should only be used if you installed HarperDB globally (which is recommended).
  2. Run harperdb to initiate the upgrade process.
    HarperDB will then prompt you for all appropriate inputs and then run the upgrade directives.

Most HarperDB versions run on different versions of Node.js. As such, the majority of upgrades will require switching Node versions as part of the upgrade process. We recommend utilizing nvm for this. See more about this in the nvm section below.

Special Cases

Upgrading to HarperDB 3.0 and up from HarperDB 2.3.1 or less will result in reindexing of your database. This temporarily requires twice the amount of storage space, as a new copy of your data will be created to follow HarperDB’s updated indexing paradigm. Please ensure that your instance has enough storage to handle this.

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/.

HarperDB 3.1.0 runs on Node version 14.17.1, to install this version of Node with nvm run the command:

nvm install 14.17.3

To switch to a version of Node run:

nvm use 14.17.3

To see the current running version of Node run:

node --version

With a handful of different versions of Node.js installed, run nvm with the ls argument to list out all installed versions:

nvm ls

When upgrading HarperDB with a previous version running on an older version of Node the execution may look like this…

Switch to the older version of Node HarperDB is running on (if it is not the current version):

nvm use 12.x

Make sure HarperDB is not running:

harperdb stop

Uninstall HarperDB. Note, this step is not required, but will clean up old artifacts of HarperDB. We recommend removing all other HarperDB installations to ensure the most recent version is always running.

npm uninstall -g harperdb

Switch to the newer version of Node:

nvm use 14.17.3

Install HarperDB globally

npm install -g harperdb

Run the upgrade script

harperdb

Start HarperDB

harperdb run