UPDATE: A été en mesure d'exclure les données de la table à l'aide de la commande pg_dump. Cela le rend encore plus rapide que d'essayer de ne pas charger les données, car vous n'avez pas à attendre que ces données soient déchargées.
--exclude-table-data=event_logs
(PostgreSQL) 9.4.4
Quelqu'un sait comment exclure une table en faisant un pg_restore
? Je peux trouver comment le faire en faisant un pg_dump
. Cependant, ce n'est pas moi qui fais le dump et je ne peux pas les exclure.
Il y a 2 tables dans le dump qui sont vraiment grandes et prennent une éternité lorsque je fais une restauration, je veux donc les ignorer.
pg_restore n'a pas de paramètre exclude table, mais un paramètre de table include.
-t table
--table = table
Restaurez la définition et/ou les données de la table nommée uniquement. Plusieurs tables peuvent être spécifiées avec plusieurs commutateurs -t. Cela peut être combiné avec l'option -n pour spécifier un schéma.
Si vous avez un grand nombre de tables, cela nécessite un peu de frappe, mais cela vous permet d'exclure des tables spécifiques en laissant simplement leurs noms en dehors de la liste.
J'ai eu le même problème. Une longue liste de tables, et je veux exclure les données de certaines des tables.
Ce que j'ai fait était le suivant:
Courir
pg_restore -l $pgdump_file > restore.pgdump.list
Ouvrez ce fichier restore.pgdump.list
dans un éditeur et insérez un ;
devant la ligne disant
;2429; 0 27550 TABLE DATA public <table_to_explore> <database>
Après avoir enregistré le fichier en question, il peut maintenant être utilisé pour l’importation, où toutes les lignes commençant par ;
sont ignorées.
pg_restore -L restore.pgdump.list | psql
Vous pouvez créer une ligne pour ajouter ;
devant les lignes ayant un nom de table spécifique, si vous souhaitez ignorer complètement une table spécifique.
man pg_restore
en parle également dans un exemple à la fin de la documentation.
ici la commande n'a pas fonctionné:
pg_restore -L restore.pgdump.list | psql
répondu par Jesper Grann Laursen!
Ici, cela a fonctionné en suivant la séquence suivante:
pg_restore -l $pgdump_file > restore.pgdump.list
;2429; 0 27550 TABLE DATA public <table_to_explore> <database>
pg_restore -v -L restore.pgdump.list -d dbname pgdump.file