ich meine PostgresQL Datenbank von einer Festplatte auf eine andere bewegt miteine Datenbank mit pg_dump und psql -U postgres db_name bewegen <... Ergebnisse werden in "ERROR: relation "table_name" existiert nicht"
pg_dump -U postgres db_name > db_name.dump
und dann
psql -U postgres db_name < db_name.dump
Ich erstellte die Datenbank db_name auf die gleiche Weise in beiden Fällen. In der neuen Datenbank, wenn ich mein Java-Programm mit einer JPA-Abfrage (oder eine JDBC-Abfrage) laufen bekomme ich diesen Fehler:
"ERROR: relation "table1" does not exist"
Die Abfrage ist:
select count(0) from table1
Ich weiß, ich habe ein bekam Verbindung, denn wenn ich das Passwort in den Verbindungsparametern ändere, bekomme ich einen Fehler.
Aus irgendeinem Grund in der neuen PostgresQL-Instanz denkt es, dass Tabelle1 nicht in dem importierten Schema vorhanden ist.
Wenn ich ändern die Abfrage
select count (0) von myschema.table1
Dann ist es zu Berechtigungen klagt:
"ERROR: permission denied for schema myschema"
Warum sollten die Berechtigungen anders sein?
Die Tabelle table1 existiert in myschema, weil ich sie im Tool pgAdmin sehen kann. Alle Zeilen wurden in die neue PostgresQL-Instanz importiert.
Wenn ich eine Abfrage von Java mache, verursachte die Kombination von pg_dump und psql ein Problem.
Was muss ich tun, um dieses Problem zu lösen?
Vielen Dank im Voraus.
Ich ziehe von 8.3 zu 8.4. Ich ändere meine Backup-Skripts, um Ihren umfassenderen Ansatz zu verwenden. Danke für die Antwort. –
Ich würde ausführliche Flag (-v) zu pg_restore für große Datenbank hinzufügen. 'pg_restore -a -v -d dbname -Fc full.dump' – green0range
Was ist der Sinn des Dumps das Schema zweimal (im Klartext und komprimiert), wenn Sie sowieso' pg_restore -a' gehen? Warum nicht 'pg_dump -Fc -a -v -f data.dump', zum Beispiel? Oder überspringen Sie den Schema-Schritt ganz und tun Globals in einem Schritt und alles andere in dem anderen? – Air