Upgrading

A new release installs over the old one, keeps config.env and the data, and brings the database up to date itself when it starts.

Before you upgrade

  • Back up. On SQLite, copy the database file (/var/lib/dmart/dmart.db for the packages) while the service is stopped; on PostgreSQL, take a pg_dump. dmart export also writes each space out as files.
  • Several nodes sharing one PostgreSQL database are upgraded together; see Running several nodes.

Upgrading

A package upgrade does not restart the service, so restart it yourself:

sudo dnf upgrade dmart && sudo systemctl restart dmart
sudo apt update && sudo apt install --only-upgrade dmart && sudo systemctl restart dmart
sudo apk upgrade dmart && sudo rc-service dmart restart
  • What the package keeps: /etc/dmart/config.env is written on the first install only, so your edits stay; the unit file is replaced, so keep your changes in a drop-in (see The packaged service).
  • The container: pull the new tag and start a new container on the same /root/.dmart volume.
  • A tarball: replace the binary (and, on the glibc builds, the libraries beside it) and restart the server.
  • At its first start, the new version runs schema initialization, the search-text fill and any one-time query_policies rewrite the release brings. On PostgreSQL several nodes take turns at these; see Running several nodes, which also covers rolling back.
  • The repositories carry the five most recent releases.