Lately (July 2025), I successfully migrated several owncloud installations from oc 10.13 to NC 25, which are on a shared host provider (with ftp and ssh access, Infomaniak).
I just used ftp and ssh do copy the files, including the OC config.php file into the new NC config folder.
The host admin panel to create a new database for NC and copy the content of the OC database, and creating a new «site» (with a subdomain cloud.xxx instead of owncloud.xxx).
Then I used the command
php ./occ upgrade
then upgraded from NC 25>26>27>28>29
At certain steps, I still run commandes that were indicated when I connected to the installation, like
php ./occ db:add-missing-indices
php ./occ maintenance:repair --include-expensive
and maybe
occ db:convert-filecache-bigint
I used some variables to get the job done, and it worked seamlessly and even quite fast once everything was well organised and commands prepared in a document file.
I could give an example if anyone is interested.