Ya vimos cómo se hacen los backups, como se los automatiza e incluso, cómo restaurar esos backups en PostgreSql.
Hace unos días tuve un requerimiento por el cual, si bien la base de datos en cuestión ya se backupea, me solicitaban hacer un backup con mayor periodicidad, pero sólo de un conjunto de tablas.
Bien, gracias a la flexibilidad de nuestro motor favorito, esto es muy sencillo.
Repasemos cómo hacíamos para hacer un dump completo de nuestro base de datos.
pg_dump -i -h localhost -p 5432 -U postgres -F c -b -v -f "/home/damian/backups/mibase.backup" mibase
Para exportar sólo un conjunto de tablas, tenemos que hacer un pequeño cambio.
pg_dump -i -h localhost -p 5432 -U postgres -t tabla -F p -b -v -f "/home/damian/backups/mitabla.sql" mibase
La diferencia entre ambos scripts radica en que agregamos el parámetro -t seguido del nombre de nuestra tabla (en este caso, con poca inspiración, usé tabla).
Lo que vamos a obtener es, solamente, un backup de la tabla indicada, con su estructura y datos.
Si lo que necesitamos son un conjunto de tablas, tenemos dos formas de hacerlo. La primera es usando el parámetro -t tantas veces como tablas vayamos a requerir.
pg_dump -i -h localhost -p 5432 -U postgres -t usuarios -t documentos -t logs -F p -b -v -f "/home/damian/backups/mistablas.sql" mibase
La segunda forma, es utilizar patrones (si es que se aplica a nuestro caso).
pg_dump -i -h localhost -p 5432 -U postgres -t productos_* -F p -b -v -f "/home/damian/backups/mistablas.sql" mibase
En ambos casos, se hará un backup de las tablas, vistas y/o secuencias que coincidan con lo indicado.
Continue reading →