Back-End

12 ago, 2008

MySQLdiff: Diferença entre Bancos de Dados

Publicidade

MySQLdiff é uma ferramenta desenvolvida em PHP que proporciona a visualização em código SQL da diferença de estrutura e/ou dados de dois bancos de dados. Estes dois geralmente são o banco de dados de desenvolvimento e o banco de dados de produção.

Instalação

Baixe o arquivo compactado com a instalação do MySQLdiff diretamente do site oficial do projeto. Descompacte este arquivo no diretório de publicação de seu servidor web, nós utilizamos o WAMP Server, portanto seria: <caminho_do_Wamp Server>\www\mysqldiff. Renomeie o arquivo “config.inc.php.dist” para “config.inc.php”.

Não é necessário nenhuma configuração especial no código PHP, acesse a página principal em: http://<servidor>/mysqldiff/.

Figura 1: Acesso ao MySQLdiffFigura 1: Acesso ao MySQLdiff

Como Usar a Ferramenta

Vamos considerar que estamos procurando as diferenças entre as bases de dados de desenvolvimento e produção. A segunda tela do MySQLdiff solicita as informações para conexão ao banco de dados de produção, figura 2.

Figura 2: Insira informações do banco de dados de produção.Figura 2: Insira informações do banco de dados de produção.

O passo seguinte solicita as informações de conexão ao banco de dados de desenvolvimento, figura 3.

Figura 3: Insira informações do banco de dados de desenvolvimento.Figura 3: Insira informações do banco de dados de desenvolvimento.

A próxima tela é a que pede uma maior atenção pois nela constam as opções para o script de saída SQL. Este script é a diferença entre o banco de dados de produção e desenvolvimento.

Figura 4: Parâmentros para o script SQL de diferença entre os bancos.Figura 4: Parâmentros para o script SQL de diferença entre os bancos.

Caso selecione a opção “Criar INSERT– ou REPLACE …”, a página seguinte deverá ser conforme figura 5. Selecione as tabelas que deseja e clique em ´próximo´.

Figura 5: Tabelas do banco de dados.Figura 5: Tabelas do banco de dados.

A figura 6 imprime na tela o script SQL propriamente dito. Este script deverá, portanto, ser rodado no banco de dados de produção pois ele reflete somente as mudanças ocorridas no banco de dados de desenvolvimento que não constam no banco de dados de produção.

Figura 6: Script final SQL.Figura 6: Script final SQL.

Conclusão

A tradução para o português desta ferramenta é somente um arquivo php que pode ser baixado de portuguese-iso-8859-1.nls.php. Não obtive resposta do desenvolvedor oficial para incluir esta tradução, para o português, no pacote da ferramenta, talvez porque meu inglês é sofrível, :-). Após a instalação renomeiem este arquivo para “portuguese-iso-8859-1.nls.php”, copiem-no para a pasta “/mysqldiff/nls/” e editem o arquivo “/mysqldiff/config.inc.php” alterando a linha:

$cfg_language = "portuguese-iso-8859-1";

Uma curiosidade desta ferramenta, que a princípio não me atentei, é que sua licença não é livre mas sim freeware.

Referências

MySQLdiff. http://www.MySQLdiff.org

MySQL Diff. Rogerio Acquadro. http://www.dicas-l.com.br/dicas-l/20080224.php