La restauration à partir d'une ancienne installation multisite échoue

Quelque chose a-t-il changé dans le processus de restauration qui pourrait affecter les sauvegardes provenant d’environnements multisites ?

J’ai tenté de déplacer un site entre deux serveurs aujourd’hui. L’ancien serveur était une installation multisite, avec nginx en façade gérant l’encapsulation HTTPS et l’option force_https activée.

Le nouveau serveur est une version autonome de l’installation standard, utilisant Let’s Encrypt.

En vérifiant le fichier de sauvegarde, les téléchargements originaux sont bien présents, mais ils ne semblent pas avoir été restaurés sur le système de fichiers du nouveau serveur. Les références aux images sur l’ensemble du site pointent vers l’ancien multisite « secondsite », si bien que les chemins indiquent /uploads/secondsite/original au lieu de /uploads/default/original.

J’ai tenté une restauration via l’interface graphique et en ligne de commande, par précaution. Je compte creuser davantage ce problème, mais j’ai estimé utile de le signaler dans Support pour l’instant, et je le déplacerai vers Contribute > Bug si quelqu’un peut confirmer qu’il s’agit toujours d’un scénario pris en charge.

Cela fonctionnait auparavant, mais je ne l’ai pas fait depuis au moins un an, peut-être plus.

Donc les fichiers sont bien là, mais au mauvais endroit ? Et la base de données pointe vers l’installation par défaut plutôt que vers secondsite ? Cela ressemble à un bug, mais je suppose que vous pouvez simplement renommer le dossier ? Ou alors la sauvegarde n’incluait pas les uploads du tout ?

Ils se trouvent dans l’archive de sauvegarde, mais n’atteignent jamais le système de fichiers.

C’est bizarre ! Ça ressemble à un bug. Et aucun des deux systèmes n’a de téléchargements S3 configurés ?

Correct. Je ferai d’autres tests plus tard.

C’est inattendu. Est-ce que je pourrais jeter un coup d’œil au fichier de sauvegarde ? Sinon, si vous souhaitez déboguer cela vous-même, consultez discourse/lib/backup_restore/uploads_restorer.rb at main · discourse/discourse · GitHub.

La volonté de @team de s’intéresser à des sujets comme celui-ci est vraiment géniale. @tgxworld m’a aidé à résoudre un problème de cas limite la semaine dernière. :tada: