sql >> Base de Datos >  >> RDS >> PostgreSQL

pg_restore no pudo ejecutar la consulta:ERROR:nombre de configuración regional no válido:en_US.UTF-8

Su nueva instalación de ubuntu aún no ha definido la configuración regional en_US.UTF-8. Entonces, cuando intenta restaurar el archivo de volcado, el archivo de volcado intenta hacer algo como:

CREATE DATABASE <database> WITH TEMPLATE = ... LC_COLLATE = 'en_US.UTF-8'...

Pero, 'en_US.UTF-8' no está definido por su nuevo servidor ubuntu. Primero, puedes verificar esto:

# list all "known" locales. In my case, on new Ubuntu 20, I get:
$ locale -a
C
C.UTF-8
POSIX

Edite /etc/locale.gen existente archivo, que contiene la lista de configuraciones regionales posibles. La mayoría de las configuraciones regionales estarán comentadas. Estos no se definirán , entonces, descomente la línea con 'en_US.UTF-8'.

Ejecute (como root) locale-gen.

root# locale-gen
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

Observe que ahora es una configuración regional:

$ locale -a
C
C.UTF-8
POSIX
en_US.utf8

(Sí, es minúscula utf8 , no hay problema)

Reiniciar su servidor de postgres (para que vea la nueva configuración regional; no es necesario que reinicie el servidor de ubuntu en sí) y restaure show now work.