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 fichiers d’upload originaux sont 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 tout le site pointent vers l’ancien multisite ‘secondsite’, de sorte 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 poster d’abord dans Support, et je passerai dans 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: