psql [options] -c 'COPY nomtable TO STDOUT' > export-table.sql
Si la table est déjà créée dans la base cible, le contenu peut se recharger dans cette base avec la commande en sens inverse:
psql [options] -c '\copy nomtable FROM export-table.sql'
Si la structure de la table n'existe pas déjà dans la base cible et qui faut l'extraire au préalable de la base source, c'est faisable avec
pg_dump [options] -s -t nomtable > structure-table.sql
qui est utilisable avec un compte en lecture seule sans droit d'accès aux séquences liées à la table.
]]>1. supprimer le lien entre la séquence et la table ("alter sequence bievent_id_seq owned by none").
2. donner le droit de lecture sur la séquence ("grant select on sequence bievent_id_seq to <monuser>").
Grosse préférence pour la 2.
]]>je voudrais exporter une table nommée "bievent' (d'un vieux postgres 9.2) pour l'importer dans une db de test.
Mon user n'a accès qu'en lecture mais pas en écriture (production).
PGPASSWORD=<mon passwd> pg_dump -f /tmp/lz.dmp -O -t bievent -h 127.0.0.1 -p 5433 -U <monuser> <database>
Mais j'obtiens
pg_dump: [archiver (db)] query failed: ERROR: permission denied for relation bievent_id_seq
pg_dump: [archiver (db)] query was: SELECT sequence_name, start_value, increment_by, CASE WHEN increment_by > 0 AND max_value = 9223372036854775807 THEN NULL WHEN increment_by < 0 AND max_value = -1 THEN NULL ELSE max_value END AS max_value, CASE WHEN increment_by > 0 AND min_value = 1 THEN NULL WHEN increment_by < 0 AND min_value = -9223372036854775807 THEN NULL ELSE min_value END AS min_value, cache_value, is_cycled FROM bievent_id_seq
Bref, il ne peut pas lire la séquence bievent_id_seq (qui donne l'id de la table) , refuse de faire un dump, mais ce n'est pas la séquence que je veux exporter mais bien la table.
J'ai essayé sans succès:
* d'ajouter -a
* d'ajouter --inserts
* d'ajouter -T bievent_id_seq
Comment puis-je faire pour n'exporter QUE la table?
Merci.
]]>