¿Hay alguna forma de exportar solo las vistas desde un esquema de Postgres?Exportar solo vistas en Postgres
Estoy usando Postgres 8.4.
Gracias.
¿Hay alguna forma de exportar solo las vistas desde un esquema de Postgres?Exportar solo vistas en Postgres
Estoy usando Postgres 8.4.
Gracias.
Si usted tiene todas las vistas con el prefijo determinado prefijo, puede utilizar este comando:
pg_dump -s -t 'prefix*' dbname > db.dump
o puede utilizar -t cambiar el mayor número posible de puntos de vista con los nombres ... Ver página del manual de pg_dump, en el extremo son ejemplos ...
No hay marca de dirección para hacer esto, pero utilizando nuestro favorito consulta de la-esquema-a-generate-a-comando técnica:
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 utilizar con un pg_dump de comandos, 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
Tenga en cuenta que esto exporta las vistas, no los datos que devuelven las vistas. Esto es probablemente obvio para la mayoría, pero no fue para mí al principio. Para exportar los datos devueltos por una vista, consulte http://stackoverflow.com/questions/1745105/postgres-dump-of-only-parts-of-tables-for-a-dev-snapshot –
Probablemente preferiría dejar caer the '-s' y sigue usando' pg_dump', en lugar de ir por la ruta 'COPY' discutida en esa pregunta – kez