Exporter uniquement les vues en Postgres

y a-t-il un moyen d'exporter uniquement les vues d'un schéma Postgres?

J'utilise Postgres 8.4.

je vous Remercie.

8
demandé sur Psyche 2011-12-12 15:58:33

2 réponses

si vous avez chaque vue préfixée par un certain préfixe, Vous pouvez utiliser cette commande:

pg_dump -s -t 'prefix*' dbname > db.dump

ou vous pouvez utiliser-t switch autant que possible avec des noms de vues... Voir page de manuel pour pg_dump, à la fin il y a des exemples...

5
répondu Jan Marek 2011-12-12 12:11:23

il n'y a pas de drapeau direct pour faire cela, mais en utilisant notre technique préférée de requête-the-schema-to-generate-a-command:

select string_agg( '-t ' || quote_ident(nspname) || '.' || quote_ident(relname), ' ' )
  from pg_class join pg_namespace on pg_namespace.oid = pg_class.relnamespace
  where relkind = 'v' and not (nspname ~ '^pg_' or nspname = 'information_schema');

cela générera une chaîne qui peut être utilisée avec une commande pg_dump, par exemple:

 -t media.duplicated_component -t adv.advert_view_distribution 

que vous pourriez alors splice dans une ligne de commande directement:

pg_dump $(psql -c "select string_agg(...etc...)" db) db
18
répondu araqnid 2011-12-12 12:10:33