'pg_restore' está destinado a restaurar archivos generados por 'pg_dump'.
Desde la página man
pg_restore es una utilidad para restaurar una base de datos PostgreSQL desde un archivo creado por pg_dump(1) en uno de los formatos que no son de texto sin formato.
https://www.postgresql.org/docs/9.2/static/app-pgrestore.html
Si su archivo fue generado por pg_dump, probablemente necesite al menos decirle en qué base de datos volcar:
pg_restore -d my_new_database temp.sql
Mi propia experiencia con pg_restore en diferentes sabores muestra que muchas veces necesito especificar el formato del archivo de volcado, incluso si estaba en formato 'nativo', a pesar de que la página de manual indica que detectaría el formato.
pg_restore -d my_new_database -Fc temp.dump
Esto es solo una suposición, pero estoy pensando que si las tablas realmente se restauraron, sin especificar la base de datos, se volcaron en la base de datos predeterminada. Puede verificar esto enumerando las tablas en la base de datos 'postgres' (no debería haber ninguna).
postgres=#\c postgres
You are now connected to database "postgres" as user "postgres".
postgres=#\dt
No relations found.
Si sus tablas se restauraron en la base de datos predeterminada, aparecerán en la lista.
Los archivos SQL de texto sin formato deben tratarse de manera diferente, generalmente se ejecutan a través de comandos SQL usando psql.
psql -d my_database < temp.sql
Suponiendo que generó una copia de seguridad de su base de datos similar a esta:
pg_dump -a --inserts databasename > exportfilename.sql
Intenta restaurar tu archivo de esta manera:
psql databasename -f exportfilename.sql
Postgres pg_restore
como se mencionó anteriormente, solo debe usarse con dump
archivos, no se puede restaurar así. Busque esta respuesta en el sitio web oficial de postgres.org
Básicamente, no usa pg_restore
con sql
archivos --->https://www.postgresql.org/message-id/AANLkTi%3DAqmWrUR4f8%2BEfCHzP%2BQrL1%3DunRLZp_jX7SoqF%40mail.gmail.com