Est-il possible de créer une sauvegarde d'une table unique dans une base de données à l'aide de postgres? Et comment? Est-ce que cela fonctionne aussi avec la commande pg_dump?
Utilisez --table
pour indiquer à pg_dump
la table à sauvegarder:
pg_dump --Host localhost --port 5432 --username postgres --format plain --ignore-version --verbose --file "<abstract_file_path>" --table public.tablename dbname
Si vous êtes sur Ubuntu,
Sudo su postgres
pg_dump -d <database_name> -t <table_name> > file.sql
Assurez-vous que vous exécutez la commande où l'utilisateur postgres
dispose d'autorisations en écriture (Exemple: /tmp
).
Éditer
Si vous souhaitez vider le fichier .sql sur un autre ordinateur, vous devrez peut-être envisager de ne pas enregistrer les informations sur le propriétaire dans le fichier .sql.
Vous pouvez utiliser pg_dump --no-owner -d <database_name> -t <table_name> > file.sql
pg_dump -h localhost -p 5432 -U postgres -d mydb -t ma_table> backup.sql
Vous pouvez effectuer la sauvegarde d'une table unique, mais je vous suggère de prendre la sauvegarde de la base de données complète, puis de restaurer la table dont vous avez besoin. Il est toujours bon d'avoir une sauvegarde de la base de données entière.
En complément de la réponse de Frank Heiken, si vous souhaitez utiliser les instructions INSERT
au lieu de copy from stdin
, vous devez spécifier le drapeau --inserts
.
pg_dump --Host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname
Notez que j'ai oublié l'indicateur --ignore-version
, car il est obsolète.