Recentemente li esse post no GUJ e resolvi pesquisar sobre as ferramentas sugeridas que eu não conhecia, eu precisava fazer duas coisas: gerar um modelo de parte de algumas tabelas e comparar diferentes ambientes de bancos de dados: o de desenvolvimento e o de produção.
Felizmente eu achei o que procurava com a excelente ferramenta Power Architect.
O download de sua última versão pode ser feito nesse link aqui.
Para demonstrar o potencial da ferramenta, vou demonstrar o seu uso com os bancos de dados do melhor fórum em Java existente:o JForum, ele não só roda o GUJ, mas em diversos outros fóruns, inclusive o das ferramentas do SQL Power!
Essa ferramenta não possui a beleza gráfica como outras ferramentas pagas, mas ela funciona muito bem e sua configuração é bem simples:
- Na opção Connections -> Database Connection Manager configure o driver JDBC de seu banco (já vem pré-configurado os drivers para HSQL, MySQL, PostgreSQL e SQL server).
- Na opção Connections -> Add Source Connection e informe os dados de conexão de seu banco de dados. Essas conexões serão usadas nos seus projetos.
- Clique com o botão direito do mouse ao lado de “Project” e escolha a opção “Add Source Connection“, depois escolha a conexão que você criou no item anterior. Logo depois que adicionar a conexão, a ferramenta faz a engenharia reversa para catalogar as suas tabelas.
- Navegue pelos bancos de dados e arraste as tabelas que desejar para a direita, monte o modelo de dados que quiser. É possível ainda exportar o diagrama para PDF, mas antes disso é interessante usar a opção Automatic Layout para melhorar o diagrama.
Bom, até agora não fez mais do que muitas ferramentas gratuitas por aí, mas o que achei mais interessante é a característica de poder comparar dois bancos de dados e listar as diferenças, isso é essencial quando se trabalha com vários ambientes de banco de dados,como desenvolvimento, homologação, testes e produção.
No exemplo abaixo eu comparo os bancos de dados do JForum 2 ( o atual ) e o 3 ( que está em desenvolvimento), notem que eu escolho a na primeira opção em vermelho que é o banco desatualizado, e a segunda opção o banco mais recente:
Aqui o relatório comparativo:
Aqui se selecionada a opção de Output Format para SQL, basta rodar o script gerado abaixo para atualizar a base de dados antiga:
Se você trabalha com diferentes ambientes, essa ferramenta open source será muito útil e evitará problemas desnecessários como aquela coluna que você esqueceu de adicionar em outro ambiente e gera diversos erros estranhos…
Fernando Boaglio, para a comunidade. =)