Ho un server DB (di produzione) che esegue PostgreSQL v9.0 e una macchina di sviluppo che esegue PostgreSQL v8.4. Vorrei fare un dump del DB di produzione e usarlo sulla macchina di sviluppo. Non riesco ad aggiornare i postgres sulla macchina dev.Utilizzare pg_restore per ripristinare da una versione più recente di PostgreSQL
Sulla macchina di produzione, corro:
pg_dump -f nvdls.db -F p -U nvdladmin nvdlstats
Sulla macchina di sviluppo, corro:
pg_restore -d nvdlstats -U nvdladmin nvdls.db
E ho ottenuto questo errore:
pg_restore: [archiver] unsupported version (1.12) in file header
Ciò si verifica a prescindere se scelgo il formato personalizzato, tar o plain_text durante il dumping.
Ho trovato one discussion online che suggerisce che dovrei usare una versione più recente di pg_restore
sulla macchina di sviluppo. Ho provato questo semplicemente copiando il file binario 9.0 sulla macchina di sviluppo, ma questo non riesce (non inaspettatamente) a causa di problemi di collegamento.
Ho pensato che il punto di utilizzo di un dump di plain_text era che sarebbe un SQL raw e portatile. Apparentemente no.
Come posso ottenere il DB 9.0 nell'installazione 8.4?
Si potrebbe avere sia 8.4 che 9.0 in esecuzione in parallelo (questo è quello che sto facendo, funziona bene), in questo modo è possibile mantenere 8.4 per i progetti locali che dipendono da esso, eppure avere 9.0 per quella appplicazione che utilizza 9 : a lungo termine, pagherà meglio di provare a ripristinare un dump da una versione diversa. – wildpeaks
[Esportazione e importazione di PostgresSQL con pgAdmin III] (http://stackoverflow.com/a/39167526/1045444) –