[Pgsql-ayuda] Pg_Dump

Alvaro Herrera alvherre@dcc.uchile.cl
Mon, 22 Dec 2003 14:54:11 -0300


On Mon, Dec 22, 2003 at 10:38:57AM -0600, Fher wrote:
> Hola he estado buscando informacion y no encuentro mucho la respecto,
> hice un respaldo de mi base con
> 
> pg_dump database>database.dump
> 
> ahora, tengo otra base donde ocupo unicamente 2 tablas de este respaldo,
> no quiero subir todo el respaldo pues es un poco tardado y las tablas que
> ocupo son pequeñas ¿habra alguna manera de sacar de este respaldo 
> unicamente
> las tablas que necesito ?

Por supuesto ... esto es Unix, siempre hay maneras de hacer estas cosas.
Una manera sencilla seria mirar los numeros de linea donde estan las
sentencias CREATE TABLE y los datos (COPY) de cada una de esas tablas
usando grep; luego usas awk para extraer lo que esta dentro del rango de
interes.  (Tambien puedes reemplazar el uso de ambas cosas con un script
sencillo en Perl usando $. y demas).

Para un amateur esto es mas bien complicadillo.  Una solucion mas
sencilla seria usar los formatos binarios (-Ft y -Fc) a pg_dump, y luego
tomas la lista de objetos del dump (pg_restore -l creo), la editas
dejando sólo los objetos que quieres recuperar, y le devuelves ese
archivo a pg_restore.

Lo otro es directamente editar el archivo del dump, pero si es grande
vas a tener una que otra complicacion con el editor.

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La conclusión que podemos sacar de esos estudios es que
no podemos sacar ninguna conclusión de ellos" (Tanenbaum)