Per motivi di lavoro spesso ci si trova a cambiare il proprio pc e magari non si vorrebbero perdere i dati quando si effettua tale cambio. Anche se si disponesse dei vari comandi che servono per ricreare i database , magari si vorrebbero mantenere i dati in esso contenuti e vorremmo migrare il tutto nella maniera più rapida possibile.
Fino a quando si mantiene la stessa versione di Postgres , poratare i dati dal vecchio al nuovo pc è veramente molto semplice , si tratta solo di copiare la vecchia cartella “data” nella nostra nuova installazione Postgres (consiglio sempre di effettuare un backup della cartella prima di sostituirla).
Tuttavia, come nel mio caso, ci possiamo trovare di fronte all’impossibilità di poter reinstallare la stessa versione di database. Se l’installazione Postgres che effettuiamo ha una versione diversa rispetto la provenienza dei nostri dati, allora non possiamo procedere come sopra, perché la cartella “data” non è compatibile in termini di cross version, ma se disponiamo ancora della versione funzionante sul nostro vecchio pc , abbiamo ancora una possibilità di poter effettuare una rapida migrazione.
Si tratta semplicemente di procedere come segue :
1) Sul nostro vecchio PC aprire pgAdmin
2) Collegarsi al server Postgres
3) Menu->Tools->backup server
4) Specificare un nome per il nostro backup e procedere. Verrà generato un file di testo piatto con tutti i comandi sql postgres per ricreare tabelle/ruoli e dati. In realtà la stessa operazione può tranquillamente essere effettuata anche eseguendo i seguenti comandi
pg_dumpall > backup
oppure
pg_dump -U USERNAME DBNAME > dbexport.sql
potrebbe essere richiesta la password per l’accesso al vostro database
5) Portiamo il file creato nel nostro pc dove gira la nuova versione di POsgress
6) Assicuriamoci che il database sia up&running
7) Accediamo alla cartella che contiene i comandi posgres , ad esempio :
C:\Program Files\PostgreSQL\9.3\bin\
8) Eseguiamo il seguente comado :
psql -f dbexport.sql postgres
oppure
psql –username postgres –file dbexport.sql
Vi verrà richiesta l’inserimento della password che è quella che avete utilizzato in fase di installazione del vostro Postgres
9) Startate il vostro PgAdmin e verificate che tutto sia andato bene.
Se durante la fase di restore dei dati, tramite da linea di comandi (punto 8) , dovesse spuntare un messaggio di errore del tipo
Oppure
Allora basta eseguire il comando prima di eseguire il punto 8:
chcp 1252
probabilmente dovuto al fatto che la console di window utilizza un encoding differente che potrebbe dare fastidio ad eventuali caratteri speciali che potrebbero trovarsi dentro il nostro file di backup psql.
https://www.postgresql.org/download/windows/
http://databasemaster.it/installare-postgresql-su-windows/
http://www.postgresqltutorial.com/install-postgresql/
https://www.postgresql.org/docs/8.3/migration.html