J’ai des problèmes pour effectuer une restauration à partir de « Discourse 3.5.0.beta9-dev - 04dbc622ab1e0197d16703ba47cf005ec93697ee » vers la version actuelle (6f06709643fa5e2253606c46f79d089ca3393ac9)
[STARTED]
'system' a démarré la restauration !
Marquage de la restauration comme en cours...
Vérification que /home/pfaffman/src/discourse-repos/discourse/tmp/restores/default/2025-10-28-201139 existe...
Téléchargement de l'archive dans le répertoire tmp...
Extraction du fichier de vidage...
Validation des métadonnées...
Version actuelle : 20251024020353
Version restaurée : 20250724012518
Activation du mode lecture seule...
Pause de Sidekiq...
Attente jusqu'à 60 secondes pour que Sidekiq termine les tâches en cours...
Création des fonctions manquantes dans le schéma discourse_functions...
Restauration du fichier de vidage... (cela peut prendre un certain temps)
commande invalide \restrict
EXCEPTION : psql a échoué : commande invalide \restrict
Si je supprime ces commandes printf de database_restorer, cela fonctionne :
<<~CMD
(
printf '%s\n' "\\\restrict #{nonce}"
#{sed_command}
printf '%s\n' "\\\unrestrict #{nonce}"
) | #{self.class.psql_command} 2>&1
CMD
Cela ressemble à ce commit.
Sur la version où la sauvegarde a été effectuée (un conteneur docker cdck), j’ai ceci :
PostgreSQL 15.13 (Debian 15.13-1.pgdg120+1) on x86_64-pc-linux-gnu, compilé par gcc (Debian 12.2.0-14) 12.2.0, 64-bit
et c’est là que j’essaie de restaurer (site de développement exécutant pg15 sur le bare metal) :
PostgreSQL 15.13 (Ubuntu 15.13-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compilé par gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
Je ne comprends pas ce que ce code essaie de faire, donc je suis juste confus.