JavaFree.org | RubyOnBr.org

De uma aplicação conectar em outro banco

Acompanhar De uma aplicação conectar em outro banco 7 posts, 4 participantes

Avatar Ronaldo Possan 52 posts

Pessoal, tenho uma aplicação em produção, porém nessa nova versão para subir, além das implementações, foram alteradas todas as estruturas do banco de dados, models, comportamentos e funcionalidades da aplicação. Se a versão fosse iniciar do zero, rodaria perfeito, porém preciso migrar da estrutura anterior para a nova, porém não queria depender de SQL.

Possíveis sugestões que encontrei:

  • Fazer um script de migração de banco de dados com o ruby mesmo, na própria aplicação. Então gostaria de ter uma classe que conecte em outro banco e faça as alterações. Seria possível isso ? O migrate seria a melhor opção ? PS: Mesmo que essa opção não seja válida, teria como no ruby on rails conectar (statement) com outro banco, fora do database.yml?
  • Migration seria uma boa opção ?

Como disso, não queria fazer via SQL, pois um script em ruby seria mais fácil, pelo fato de eu mesmo poder desenvolve-lo e já entender do negócio da aplicação.

Sugestões galera !

Agradeço muito !!!

 
Avatar Fernando Luizao 402 posts

Vc pode usar o método establish_connection do Active Record para se conectar ao outro banco. Mas no caso das migrações, vc teria que alterar o database.yml (ou criar uma aplicação separada para fazer a atualização na estrutura.)

 
Avatar Ronaldo Possan 52 posts

Migration daria para fazer tranquilo ?

 
A013c064de659bbff814eb1f4410446b?s=80 Clovis 778 posts

Voce poderia ter previsto a mudança de estrutura através de migrations…. creio que seria a solução mais trivial..

 
Avatar Mereghost 844 posts

Não acredito quer migrations sejam a solução aí.

A adequação dos dados é uma coisa que não deve ocorrer com alguma frequência então o mais correto seria fazer no SQL mesmo ou usando algum script externo ao ambiente.

Se não houvesse nenhum outro motivo para isso, pode pensar o saco que seria para cada desenvolvedor criar a aplicação, só para ter no meio das migrações o banco destruído, reestruturado e migrado.

 
Avatar Ronaldo Possan 52 posts

Concordo … o ideal mesmo é criar um script externo do ambiente. Como o Mereghost disse, não faz sentido tê-lo no ambiente da aplicação.

Valeu pelas dicas !

 
A013c064de659bbff814eb1f4410446b?s=80 Clovis 778 posts

Se voce tivesse evoluido a aplicação juntamente com o banco de dados, migrations iria vir a calhar, agora o banco é totalmente diferente, ai não rola mesmo… faz script sql fora da aplicação e boa sorte

:)