Lors de la mise à jour vers la version 14 de mon nextcloud j’ai fait face à deux erreurs bloquantes. Voici comment j’y est remédié.

504 Gateway Time-out

Dès les préparatifs de la mise à jour je suis tombé sur ce bel écran.

Il s’agit du serveur nginx qui coupe délibérément la connexion. En effet comme il ne reçoit plus de données depuis la page de mise à jour, celle-ci étant en attente du téléchargement de l’archive de nextcloud, il coupe simple les ponts au bout de quelques secondes. Cela est bloquant car le processus de mise à jour ne détecte pas que l’archive est téléchargée et par conséquent reste bloqué sur l’étape du téléchargement. Pour y remédier il suffit d’ajouter la directive proxy_read_timeout dans le fichier
proxy_params afin d’augmenter le temps d’attente de nginx. La mise à jour terminé j’ai désactivé cette directive par mesure de sécurité.

sudo nano /etc/nginx/proxy_params
[...]
proxy_read_timeout 6000s;
[...]
sudo systemctl restart nginx```

Après le redémarrage de nginx j’ai pu passer aux étapes suivantes.

![](/content/images/2019/02/update_13_to_14_2.png)

## Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes  

Cette erreur est apparue lors de la deuxième phase de la mise à jour.

![](/content/images/2019/02/update_13_to_14_3.png)

Pour rétablir la mise à jour j’ai joué avec ma base mariadb. Apparemment c’est une erreur connue chez mariadb : [https://www.youtube.com/watch?v=vPNU3fONY7c](https://www.youtube.com/watch?v=vPNU3fONY7c)

sudo mysql -u root -p
MariaDB [(none)]> use nextcloud;
MariaDB [nextcloud]> set global innodb_large_prefix=on;
MariaDB [nextcloud]> set global innodb_file_format=Barracuda;```

Validation des changement auprès de nextcloud.

 sudo -u www-data php occ maintenance:repair

Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
 - Repair MySQL collation
     - Change row format for oc_addressbooks ...
     - Change collation for oc_addressbooks ...
     - Change row format for oc_authtoken ...
     - Change collation for oc_authtoken ...
     - Change row format for oc_calendarobjects ...
     - Change collation for oc_calendarobjects ...
     - Change row format for oc_calendars ...
     - Change collation for oc_calendars ...
     - Change row format for oc_calendarsubscriptions ...
     - Change collation for oc_calendarsubscriptions ...
     - Change row format for oc_dav_shares ...
     - Change collation for oc_dav_shares ...
     - Change row format for oc_migrations ...
     - Change collation for oc_migrations ...
     - Change row format for oc_mimetypes ...
     - Change collation for oc_mimetypes ...
     - Change row format for oc_systemtag_group ...
     - Change collation for oc_systemtag_group ...
     - Change row format for oc_trusted_servers ...
     - Change collation for oc_trusted_servers ...
 - Repair mime types
     - Fixed comicbook mime types
 - Clean tags and favorites
     - 0 tags of deleted users have been removed.
     - 0 tags for delete files have been removed.
     - 0 tag entries for deleted tags have been removed.
     - 0 tags with no entries have been removed.
 - Repair invalid shares
 - Remove shares of a users root folder
 - Move .step file of updater to backup location
     - .step file exists
     - .step file moved to .step-previous-update
 - Fix potential broken mount points
     - No mounts updated
 - Repair invalid paths in file cache
 - Add log rotate job
 - Clear frontend caches
     - Image cache cleared
     - SCSS cache cleared
     - JS cache cleared
 - Add preview background cleanup job
 - Queue a one-time job to cleanup old backups of the updater
 - Repair pending cron jobs
     - Repaired 1 pending cron job(s).
 - Fix component of birthday calendars
     - 2 birthday calendars updated.
 - Fix broken values of calendar objects
    0 [>---------------------------]
 - Registering building of calendar search index as background job
     - Repair step already executed
 - Remove activity entries of private events
     - Removed 0 activity entries
 - Fix the share type of guest shares when migrating from ownCloud
 - Copy the share password into the dedicated column
 - Migrate binary status into separate boolean fields
 - Update OAuth token expiration times

Retour sur la mise à jour, cela fonctionne !

Ma migration vers Nextcloud 15 n’attend plus que moi.