sql >> Base de Datos >  >> RDS >> PostgreSQL

Exportar solo vistas en Postgres

No hay un indicador directo para hacer esto, pero usamos nuestra técnica favorita de consultar el esquema para generar un comando:

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');

Esto generará una cadena que se puede usar con un comando pg_dump, por ejemplo:

 -t media.duplicated_component -t adv.advert_view_distribution 

Que luego podría empalmar en una línea de comando directamente:

pg_dump $(psql -c "select string_agg(...etc...)" db) db