example - spring postgresql 10
Mover una base de datos con pg_dump y psql-U postgres db_name<... da como resultado “ERROR: relationship” table_name “no existe” (3)
Moví mi base de datos PostgresQL de un disco duro a otro usando
pg_dump -U postgres db_name > db_name.dump
y entonces
psql -U postgres db_name < db_name.dump
Creé la base de datos db_name de la misma manera en ambos casos. En la nueva base de datos cuando ejecuto mi programa Java con una consulta JPA (o una consulta JDBC) recibo este error:
"ERROR: relation "table1" does not exist"
La consulta es:
select count(0) from table1
Sé que tengo una conexión porque si cambio la contraseña en los parámetros de conexión obtengo un error.
Por alguna razón, en la nueva instancia de PostgresQL, cree que la tabla1 no existe en el esquema importado.
Si cambio la consulta a
seleccione cuenta (0) de myschema.table1
Entonces se queja de los permisos:
"ERROR: permission denied for schema myschema"
¿Por qué los permisos serían diferentes?
La tabla table1 existe en myschema porque puedo verla en la herramienta pgAdmin. Todas las filas fueron importadas en la nueva instancia de PostgresQL.
Cuando hago una consulta desde Java, la combinación de pg_dump y psql creó un problema.
¿Qué necesito hacer para resolver este problema?
Gracias por adelantado.
¿Te estás moviendo a la misma versión de PostgreSQL? Puede haber problemas si realiza un volcado con pg_dump 8.3 y trata de restaurarlo en Postgresql 8.4. De todos modos, asumiendo que es la misma versión intente lo siguiente:
Volcar todos los objetos globales, como usuarios y grupos (no sé si faltaban en su volcado):
pg_dumpall -g -U postgres > globals.sql
Volcado del esquema de la base de datos:
pg_dump -Fp -s -v -f db-schema.sql -U postgres dbname
Volcar contenidos de la base de datos:
pg_dump -Fc -v -f full.dump -U postgres dbname
Ahora restaurar.
psql -f globals.sql
psql -f db-schema.sql dbname
pg_restore -a -d dbname -Fc full.dump
Ese es mi $ 0.02. Espero eso ayude.
Me encontré con este problema. Entonces me di cuenta de que me olvidé de instalar la extensión postgis
.
No olvides instalar las extensiones que utilizas.
Pude resolverlo cambiando los privilegios de la base de datos a CONNECT público y los privilegios de esquema para public y postgres = USAGE y CREATE.
Al parecer, mis scripts de copia de seguridad no conservaban los privilegios, al menos no al pasar de 8.3 a 8.4.