Leonardo Chaves escreveu:
Salve comunidade postgres,
estou precisando de uma boa ferramenta para comparar schemas. Em minhas
buscas encontrei a ferramenta DB-solo 2.2. É uma ótima ferramenta
porém sua licença
não gratuita. Alguém conhece alguma ferramenta (free, linux) que faça
uma boa análise comparativa entre os banco de teste e produção?
Att,.
Leonardo Chaves de Freitas
QualyConsult
Analista de Bando de Dados - DBA
vc pode fazer um Scripit em shell
Crie a pasta dump1 e dump2.
Crie o arquivo.sql com o codigo
COPY (select * from tabela1 order by 1) TO STDOUT WITH DELIMITER '|';
COPY (select * from tabela2 order by 1) TO STDOUT WITH DELIMITER '|';
etc....... com as suas tabelas.
OBS : O order by tem que usar uma coluna que não repete no caso a PK.
O comando split é usado caso o arquivo fique muito grande e bom quebrar
o arquivo dump.tmp.*.$$.
#!/bin/sh
CLUSTER=CSEF
DB1=banco_produção
DB2=banco_teste
H1=10.0.0.2
H2=10.0.0.3
U=postgres
echo -n "Comparing the databases..."
nohup /usr/local/pgsql/bin/psql -U $U -h $H1 $DB1 -f arquivo.sql -A
>dump.tmp.1.$$ &
nohup /usr/local/pgsql/bin/psql -U $U -h $H2 $DB2 -f arquivo.sql -A
>dump.tmp.2.$$ &
while [ $(ps -ef | grep -E psql | grep -v grep| wc -l) != 0 ];
do
sleep 5
done
split -b 300m dump.tmp.1.$$ dump1/
split -b 300m dump.tmp.2.$$ dump2/
diff dump1/ dump2/ >dump.diff
TAMANHOARQ=$(du dump.diff | awk '{print $1}');
if [ $TAMANHOARQ -lt 100 ]; then
echo -e "\nSuccess! Databases are identical."
"Aqui voce pode enviar um email"
#rm dump.diff
else
/usr/local/bin/sendEmail -f [EMAIL PROTECTED] -t
echo -e "\nFAILED - see dump.diff."
"Aqui voce pode enviar um email"
fi
rm -f dump.tmp.?.*
rm dump1/*
rm dump2/*
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral