Detalhando:

> o proprio psql do postgres faz isso
> 
> coloque a seguinte linha no inicio do arquivo
> \set ON_ERROR_STOP
> 
> psql dbname < infile
> 
> http://www.postgresql.org/docs/8.3/interactive/backup-dump.html na
> sessão 24.1.1. Restoring the dump
> 
> o manual refere-se para restauração de dump, mas tb pode ser utilizado
> para o que vc quer fazer

Sim, é mesmo. Alterar o arquivo texto (por mais simples que seja a
alteração) é um passo bastante inconveniente, mas não deixa de ser uma
opção. Não conhece algo um pouco mais amigável, com botões e cliques?
Outra coisa: tem como o arquvo de saída conter APENAS os comandos que deram
erro e as respectivas mensagens? Isso ajudaria bastante a melhorar o
desepmenho e reduzir o volume de lixo que seria inevitavelmente jogado fora.

> E da onde vem esse monte de scripts?estão em arquivo texto, ou algum
> programa gera isso p/ vc?

Tenho um programa que gera INSERTs e UPDATEs para cada registro de certas
tabelas, e às vezes essas tabelas são bem grandes. Isso serve por exemplo
para garantir que um certo conjunto de tabelas tenha exatamente os registros
que eu quero, independente dos registros existentes (que o usuário pode criar
sem eu me importar com eles). Mesmo que eu quisesse puramente garantir uma
cópia da minha base, não posso simplesmente dar um TRUNCATE seguido de um
monte de INSERTs porque essas tabelas são de consulta e têm inúmeras
referências de outras tabelas. Remover e recriar *todas* essas chaves
estrangeiras daria um trabalho monstruoso, levaria uma eternidade para
reconstruir os índices, enquanto que comandos de INSERT e UPDATE podem ser
feitos com a base no ar, aos poucos conforme a carga do servidor.

Outra coisa que uso para gerar scripts enormes são meta-scripts (SELECTs que
geram como saída texto de comandos SQL) para geração de índices e
eventuais rotinas auxiliares. Os scripts de criação de bases vazias (para
testes internos e novos clientes) também são bem grandes.

Sugestões?

Mozart Hasse


_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to