Dica rápida postgresql, backup de apenas uma tabela do banco de dados

Tive a necessidade (recorrente, por sinal) de fazer backup e restore de apenas algumas tabelas do banco de dados. Por haver se tornado de certa forma repetitiva, fiz um pequeno script para diminuir a repetição da digitação dos comandos de backup e restore dessas tabelas.

Para realizar o backup de uma determinada tabela, utilizamos:

pg_dump -t nome_da_tabela nome_do_banco > destino_do_backup.sql

Para realizar o restore, basta digitar:

pg_restore -t nome_da_tabela -d nome_do_banco < origem_do_backup.sql

Segue abaixo um exemplo de um script para semi-automatizar a realização do Backup de uma tabela do banco:

#/bin/sh
if [ "$1" = "" ]; then
   clear
   echo "Informe a TABELA para copiar."
   exit 0
 else
   tabela="$1"
 fi

if [ "$2" = "" ]; then
   clear
   echo "Informe o BANCO DE DADOS desejado."
   exit 0
else
   banco="$2"
fi

if [ "$3" = "" ]; then
   clear
   echo "Informe um nome para o Backup."
   exit 0
else
   destino="$3"
fi

su postgres -c "pg_dump -t $tabela $banco > $destino"

Salvei com o nome de backup.sh. Para executar o script, comande pelo console:

sh backup.sh clientes bd_loja bck_loja.sql

Onde:
clientes é o nome da minha tabela
bd_loja é o meu banco de dados
e bck_loja.sql é o arquivo que será gerado com os dados

Tags: , , ,

Leave a Reply