summaryrefslogtreecommitdiff
path: root/docs/ops.md
blob: 02644c2290b348c838afb01f1f51ee6168d8ec75 (plain)
1
2
3
4
5
6
7
8
9
10
11
# Operating `hi`

## Upgrades

`hi` will automatically upgrade its database on startup. Before doing so, it will create a backup of your database (at `.hi.backup`, or controlled by `--backup-database-url`). If the migration process succeeds, this backup will be deleted automatically. If the migration process _fails_, however, `hi` will attempt to restore your existing database from the backup before exiting. If the restore process also fails, then both the backup database and the suspected-broken database will be left in place.

To avoid destroying backups that may still be needed, `hi` will not start if the backup database already exists. **There is no catch-all advice on how to proceed**, but you can try the following:

* Start the server with **a copy** of the backup database, and determine if any data has been lost. If not, shut it down, replace your main database by copying the backup, and carry on.

The `hi` database is an ordinary file. While the server is not running, it can be freely copied or renamed without invalidating the data in it.