Perché pg_restore restituisce correttamente ma non ripristina effettivamente il mio database?

StackOverflow https://stackoverflow.com/questions/5900888

  •  29-10-2019
  •  | 
  •  

Domanda

Ho un database Postgres 8.4 su un server Linux che ho scaricato utilizzando il seguente comando:

pg_dump --format=c --exclude-table=log --file=/path/to/output my_db

Quindi eseguo il ftp del file creato sul mio computer Windows 7 locale e cerco di ripristinare il file nella mia istanza Postgres 8.4 locale utilizzando il seguente comando:

pg_restore --create --exit-on-error --verbose c:\path\to\file

Il comando di ripristino genera un sacco di output sostenendo che ha creato il mio database, connesso ad esso e quindi creato tutte le altre tabelle come previsto.Tuttavia, quando visualizzo i database sulla mia macchina locale tramite pgAdmin, il database ripristinato non esiste affatto.

Nel tentativo di risolvere i problemi, ho provato il seguente comando:

pg_restore --create --exit-on-error --verbose --host=blahblah --username=no_one c:\path\to\file

Quando eseguo questo comando, anche se l'host e il nome utente forniti non hanno alcun senso, ottengo comunque lo stesso identico output dal comando senza errori.

Qualcuno si è imbattuto in questo problema prima o sa cosa potrebbe causarlo?

È stato utile?

Soluzione

Devi aggiungere il nome di un database valido a cui connetterti inizialmente o scaricherà semplicemente il contenuto su STDOUT:

pg_restore --create --exit-on-error --verbose --dbname=postgres <backup_file>

Altri suggerimenti

Questo crea ancora confusione, ho tentato di eseguire questa cosa che --dbname dovrebbe essere il db che voglio creare.

pg_restore --create --exit-on-error --verbose --dbname=jiradb jiradb.tar

SBAGLIATO !!

Dovrebbe letteralmente essere --dbname postgres, il --create creerà quindi il vero db dal nome nel file.Nel mio caso, ho ripristinato da un backup di tar con

pg_restore --create --exit-on-error --verbose --dbname=postgres jiradb.tar
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top