Best way to update from v12 to v20


I’ve been tasked with getting a very old instance updated to current. It’s now at v12.0.0, running in a Docker container on Ubuntu 16.04 with PHP 7.1.6 and Postgres 9.6.2.

Is my best bet to step though the updates following the normal practice, or is there a better option in this situation?



Out of my own experience what worked quite well especially for the transition to nextcloud hub was a fresh install. In my case this was an installation without docker going from 14 to 17, so i had the additional problem, that the supported PHP version under 16.04 was too old for the more recent nextcloud versions.
Basically I did a full backup, installed Ubuntu 20.04 and imported the Database again pointing it to the original data located on a raid. Of course I can not promise, that this will for for your quite major version jump and the docker container neatlessly.

Thanks. I’m planning to try the typical sequential upgrade path, but I’ll keep this in mind as another option.

I successfully upgraded from 12 to 20. For anyone else who may find this later, here’s what I did:

  1. Cloned everything to a new system, so I could step through everything without putting the production server at risk.
  2. Did a docker pull for NC 12, 13, etc through 20. Evern though I was already at 12, I needed to get to the latest 12 instead of the older 12 I was on.
  3. Edited my docker-compose file to use the next incremental image, incrementing the container name so that it always matched (not required, but made it obvious what version I was at).
  4. Started the container and waited for the upgrade to complete.
  5. Check that the gui still works.
  6. Stopped the container, and went back to step 3, repeating until I was at v20.

The only variation was when I hit NC v17. Update reported successful, but the gui reported that an app update was needed. I entered the container, ran ./occ -vv upgrade to upgrade files_rightclick, and moved on.