Votre nouvelle installation Ubuntu n'a pas encore défini la locale en_US.UTF-8. Ainsi, lorsque vous essayez de restaurer le fichier de vidage, le fichier de vidage tente de faire quelque chose comme :
CREATE DATABASE <database> WITH TEMPLATE = ... LC_COLLATE = 'en_US.UTF-8'...
Mais 'en_US.UTF-8' n'est pas défini par votre nouveau serveur Ubuntu. Tout d'abord, vous pouvez vérifier ceci :
# list all "known" locales. In my case, on new Ubuntu 20, I get:
$ locale -a
C
C.UTF-8
POSIX
Modifier /etc/locale.gen
existant fichier, qui contient la liste des paramètres régionaux possibles. La plupart des paramètres régionaux seront commentés. Ces ne seront pas définis , donc, décommentez la ligne avec 'en_US.UTF-8'.
Exécutez (en tant que root) locale-gen.
root# locale-gen
Generating locales (this might take a while)...
en_US.UTF-8... done
Generation complete.
Notez qu'il s'agit maintenant d'un paramètre régional configuré :
$ locale -a
C
C.UTF-8
POSIX
en_US.utf8
(Oui, c'est en minuscules utf8
, pas de problème)
Redémarrer votre serveur postgres (il voit donc les nouveaux paramètres régionaux - vous n'avez pas besoin de redémarrer le serveur ubuntu lui-même), et vous restaurez le show now.