Hey everyone. For a variety of reasons I’ve ended up with a paperless-ngx install that has not been upgraded for a while. It’s currently on 1.17.1, and I’ve been researching to figure out the best way to get back up to current. I’m worried about major changes that have happened over time and what the best way to go about this is, but I’ve not had good luck finding something that gives me the confidence to go about it. Hoping someone here has some guidance. Cheers!
I’ve not had good luck finding something that gives me the confidence to go about it
Now’s a good time to make sure you have good backups.
Knowing you can fallback to your backups helps a lot with confidence.(And test them before comitting)
backups are useless if you’ve never tested the restore process, so definitely try restoring to a test environment first befroe you do the upgrade.
In addition to backups, consider using snapshots if your file system supports it (ZFS, Btrfs, or LVM).
I use ZFS and have each of my Docker volumes in a separate ZFS dataset (similar to a Btrfs subvolume). This lets me snapshot each container independently. I take a snapshot before an upgrade. If the upgrade goes badly, I can instantly revert back to the point before I performed the upgrade.
fallback
That’s the noun. For the verb, it’s “fall back”, with a space.
This is how I handle it for most software: Read (or at least skim) the changelogs for all minor and major versions between your current version and the latest version.
If you’re using Docker, diff your current docker-compose to the latest one for the project. See if any third-party dependencies (like PostgreSQL, Redis, etc) have breaking changes.
If there’s any versions with major breaking changes, upgrade to each one separately (eg. 1.0 to 2.0, then 2.0 to 3.0, etc) rather than jumping immediately to the latest one, as a lot of developers don’t sufficiently test upgrading across multiple versions.
Take a snapshot before each upgrade (or if your file system doesn’t support snapshots, manually take a backup before each upgrade).
…or just don’t read anything, YOLO it, and restore a snapshot if that fails. A lot of software is simple enough that all you need to do is change the version number in docker-compose (if you’re using Docker).