Steffo's website

what a year, huh?

Guide - Dump e load di un database PostgreSQL

posted on ; updated on

Dump e load di un database PostgreSQL

Può capitare di dover spostare i contenuti di un database PostgreSQL da un'istanza del software a un'altra, per una migrazione di server, un aggiornamento maggiore di PostgreSQL oppure per backup.


Visto che ci sono tanti modi diversi per farlo, ho preso nota del modo che sto usando adesso, per referenza futura.

Creare il dump

Per trasformare un database in un file:

pg_dump --format=c --compress=9 --file="$database.custom.dump.psql" "$database"

Se si sta cambiando installazione di PostgreSQL, potrebbe essere una buona idea specificare anche --no-privileges e --no-owner, in modo da non preservare i permessi, che sicuramente referenziano utenti dell'installazione precedente.

Ripristinare il dump

Per ripristinare il database da quel file:

pg_restore --format=c --dbname="$database" "$database.custom.dump.psql"

Come prima, potrebbe essere una buona idea specificare anche --no-privileges e --no-owner, se si pensa possa essere utile.