J'ai une base de données avec des centaines de tables, ce que je dois faire, c'est exporter des tables spécifiées et insérer des instructions pour les données dans un fichier SQL.
La seule déclaration que je sache pouvoir y parvenir est
pg_dump -D -a -t zones_seq interway > /tmp/zones_seq.sql
Devrais-je exécuter cette instruction pour chaque table ou existe-t-il un moyen d'exécuter une instruction similaire pour exporter toutes les tables sélectionnées dans un seul grand carré? Le pg_dump ci-dessus n'exporte pas le schéma de la table mais insère, j'ai besoin des deux
Toute aide serait appréciée.
À partir du manuel : "(, vous pouvez sélectionner plusieurs tables en écrivant plusieurs commutateurs -t "
Vous devez donc lister toutes vos tables
pg_dump --column-inserts -a -t zones_seq -t interway -t table_3 ... > /tmp/zones_seq.sql
Notez que si vous avez plusieurs tables avec le même préfixe (ou suffixe), vous pouvez également utiliser des caractères génériques pour les sélectionner avec le paramètre -t
:
" De plus, le paramètre table est interprété comme un motif selon les mêmes règles que celles utilisées par les commandes\d de psql "
Si ces tables spécifiques correspondent à une expression rationnelle particulière, vous pouvez utiliser l'option regex in -t dans pg_dump.
pg_dump -D -a -t zones_seq -t interway -t "<regex>" -f /tmp/zones_seq.sql <DBNAME>
Par exemple, pour vider les tables qui ont commencé avec "test", vous pouvez utiliser
pg_dump -D -a -t zones_seq -t interway -t "^test*" -f /tmp/zones_seq.sql <DBNAME>