[rails-br] Como usar Migrate, para engenharia reversa no BD?

112 views
Skip to first unread message

Tiago Cunha

unread,
Nov 5, 2009, 5:54:55 AM11/5/09
to rail...@googlegroups.com
Ola pessoal.

Sou novo com ruby on rails.(RadRails)

Como eu faço pra usar a base de dados que ja esta pronta?

Tem como ler essa base e gerar o Scaffold?

Alias, outro problema, sempre que a base de dados esta pronta, o scaffold nao funciona mais...

Se alguem tiver sugestoes ou soluçoes...

Obrigado.

Ivan Schuster

unread,
Nov 5, 2009, 6:18:24 AM11/5/09
to rail...@googlegroups.com
Tiago, o fato de estares com a base pronta não impede o funcionamento do scaffold.
Como és iniciante, não esquece que para que as alterações sejam realizadas no SGBD é necessário executar o "rake db:migrate".

A respeito da engenharia reversa do SGBD para o scaffold, não sei da existência de nada que faça isto, mas não deve ser difícil criar um "job" para fazer isto. Dependendo o tamanho da base e do teu interesse em utilizar o scaffold com poucas modificações, pode valer a pena.

Abs,

Ivan

2009/11/5 Tiago Cunha <tiag...@gmail.com>

Tiago Cunha

unread,
Nov 5, 2009, 6:38:25 AM11/5/09
to rail...@googlegroups.com
Bom dia Ivan.

Não sei se me espressei corretamente... mas nao sei usar o scaffold direito, mas pelo que eu vi, se eu criar a base de dados antes de usar o scafold, ele nao gera as telas...(crud).

Ainda estou lendo livros pra, conhecer melhor rails.

:)

2009/11/5 Ivan Schuster <ihsch...@gmail.com>

Ivan Schuster

unread,
Nov 5, 2009, 7:46:55 AM11/5/09
to rail...@googlegroups.com
Gera sim Tiago.

Por exemplo, se fizeres "ruby script/generate scaffold my_table field1:string field2:integer ..."
Vai gerar os model, views, test e tudo mais. Independente de a base já existir ou não.
E vai gerar também a migration (veja no diretório db) que fará a manutenção no SGBD, o que só acontecerá se executares o comando "rake db:migrate".
O rake pega a migration gerada e aplica no SGBD.
Como, no teu caso, já estás com o SGBD formado, não é aconselhável executares este procedimento.
Dá uma lida no Rails Guides que está tudo explicado lá.
Leia com atenção o tópico que trata sobre a tabela schema_migrations.

Mauricio Lima

unread,
Nov 5, 2009, 8:19:04 AM11/5/09
to rail...@googlegroups.com
Se eu nao me engano o GETNA faz isso que vc quer. de uma olhada http://github.com/exxpert/getna
 
[]´s

Tiago Cunha

unread,
Nov 5, 2009, 8:51:04 AM11/5/09
to rail...@googlegroups.com
Ivan vc tem o link ou pdf(preferencia PT-BR) desse  Rails Guides.

To lendo muito manual aqui, hoje peguei um com 289 paginas...
Rails para sua Diversão e Lucro by Ronaldo Melo Ferraz 2006

Tem mais um tres na fila, fora outros iniciais. rs

Outro com 165 paginas ja na fila,
Tutorial de Ruby Eustaquio “TaQ” Rangel 19 de julho de 2005

:) talvez um destes que estou lendo tenham o que eu preciso...


Vou olhar tambem a dica do Mauricio, do GetNA

Abraço a todos.



2009/11/5 Ivan Schuster <ihsch...@gmail.com>

caike

unread,
Nov 5, 2009, 8:51:36 AM11/5/09
to rail...@googlegroups.com
Como você está trabalhando com uma base legada, seria interessante nem gerar as migrations.

./script/generate scaffold ModelName [field:type, field:type] --skip-migration 
 

2009/11/5 Mauricio Lima <mauri...@ig.com.br>



--
Att,
- Caike
http://caikesouza.com

Ricardo S Yasuda

unread,
Nov 5, 2009, 10:19:15 AM11/5/09
to rail...@googlegroups.com

Ivan Schuster

unread,
Nov 5, 2009, 10:58:14 AM11/5/09
to rail...@googlegroups.com
Tiago, abaixo o link.

http://guias.rubyonrails.pro.br/

Se me permites a sugestão, cuidado com livros antigos a respeito do Ruby e, principalmente, sobre Rails. O Rails chega a ter 2 versões por ano e pelo que tenho lido a partir da versão 2.0 muita coisa mudou.

O site do Rails tem muito material bom, mas ajudará muito se acessares os materiais em inglês. Em português tem o livro do Urubatan Ruby on Rails - Desenvolvimento Fácil e Rápido de Aplicações Web, mas não recomendo como material inicial. Particularmente eu gosto muito dos livros do "The Pragmatic Programmers", são muito bem escritos e de fácil compreensão. São todos em inglês e pode ser adquiridos pela internet. O Google aponta fácil para o endereço deles.

Os screen casts também são boa fonte de consulta para iniciantes.

Tiago Cunha

unread,
Nov 5, 2009, 11:01:31 AM11/5/09
to rail...@googlegroups.com
Obrigado Ivan e Ricado.

To aqui olhando o guias pro br,  vou dar uma boa lida, pra ver se encontro a solução e tambem conhecer mais da linguagem.

Abraços

MarcRic

unread,
Nov 6, 2009, 9:46:05 AM11/6/09
to rails-br
Thiago,

Já falei sobre isso em outra thread, mas vai aqui novamente.

Primeiro, vamos separar: sua "base já existente" foi criada seguindo o
padrão sugerido pelo Rails, ou é uma base de dados legada totalmente
fora do padrão Rails?

Se a base estiver no padrão Rails, não há maiores problemas, como já
disseram.

Já se for uma base legada totalmente fora do "jeito Rails de ser",
fica MUITO mais complicado. Já tive oportunidade de discutir sobre
isso na época do TrainerOnRails (pra quem não sabe era a versão Rails
do RubyLearning), e pudemos concluir que algumas medidas básicas,
apesar de não obrigatórias, seriam recomendáveis:

- Teriam que ser criados novos campos nas tabelas (basicamente para as
colunas ID e as de data de inclusão e alteração), que o Rails usa por
default.
- Teriam que ser criadas VIEWS sobre as tabelas legadas de forma a
simular a nomenclatura (tabelas e campos) default do Rails.

Daí por diante a discussão se perdeu, pois alguém leu em algum lugar
que Rails não funcionava direito com VIEWS, e o pessoal perdeu o
interesse em continuar a discussão.

Em resumo, Rails não é particularmente a solução ideal se você não
segue as "opiniões" dele. Perde muito da agilidade no desenvolvimento,
que é a sua principal característica (tentem fazer um blog em 15
minutos com uma base legada fora do padrão Rails...).

Eu acredito que se existir uma maneira automatizada de converter uma
base legada para o padrão Rails, na forma de uma aplicação, vai ser um
tremendo sucesso.

O problema é fazer...

Ressalto que na época o Rails 2 era recém lançado, e talvez esta
situação melhore muito com o Rails 3, quem sabe?

Grande abraço.

On 5 nov, 14:01, Tiago Cunha <tiago...@gmail.com> wrote:
> Obrigado Ivan e Ricado.
>
> To aqui olhando o guias pro br,  vou dar uma boa lida, pra ver se encontro a
> solução e tambem conhecer mais da linguagem.
>
> Abraços
>
> 2009/11/5 Ivan Schuster <ihschus...@gmail.com>
>
>
>
> > Tiago, abaixo o link.
>
> >http://guias.rubyonrails.pro.br/
>
> > Se me permites a sugestão, cuidado com livros antigos a respeito do Ruby e,
> > principalmente, sobre Rails. O Rails chega a ter 2 versões por ano e pelo
> > que tenho lido a partir da versão 2.0 muita coisa mudou.
>
> > O site do Rails tem muito material bom, mas ajudará muito se acessares os
> > materiais em inglês. Em português tem o livro do Urubatan Ruby on Rails -
> > Desenvolvimento Fácil e Rápido de Aplicações Web, mas não recomendo como
> > material inicial. Particularmente eu gosto muito dos livros do "The
> > Pragmatic Programmers", são muito bem escritos e de fácil compreensão. São
> > todos em inglês e pode ser adquiridos pela internet. O Google aponta fácil
> > para o endereço deles.
>
> > Os screen casts também são boa fonte de consulta para iniciantes.
>
> > Abs,
>
> > Ivan
>
> > 2009/11/5 Tiago Cunha <tiago...@gmail.com>
>
> >> Ivan vc tem o link ou pdf(preferencia PT-BR) desse  Rails Guides.
>
> >> To lendo muito manual aqui, hoje peguei um com 289 paginas...
> >> Rails para sua Diversão e Lucro by Ronaldo Melo Ferraz 2006
>
> >> Tem mais um tres na fila, fora outros iniciais. rs
>
> >> Outro com 165 paginas ja na fila,
> >> Tutorial de Ruby Eustaquio “TaQ” Rangel 19 de julho de 2005
>
> >> :) talvez um destes que estou lendo tenham o que eu preciso...
>
> >> Vou olhar tambem a dica do Mauricio, do GetNA
>
> >> Abraço a todos.
>
> >> 2009/11/5 Ivan Schuster <ihschus...@gmail.com>
>
> >>> Gera sim Tiago.
>
> >>> Por exemplo, se fizeres "ruby script/generate scaffold my_table
> >>> field1:string field2:integer ..."
> >>> Vai gerar os model, views, test e tudo mais. Independente de a base já
> >>> existir ou não.
> >>> E vai gerar também a migration (veja no diretório db) que fará a
> >>> manutenção no SGBD, o que só acontecerá se executares o comando "rake
> >>> db:migrate".
> >>> O rake pega a migration gerada e aplica no SGBD.
> >>> Como, no teu caso, já estás com o SGBD formado, não é aconselhável
> >>> executares este procedimento.
> >>> Dá uma lida no Rails Guides que está tudo explicado lá.
> >>> Leia com atenção o tópico que trata sobre a tabela schema_migrations.
>
> >>> Abs,
>
> >>> Ivan
>
> >>> 2009/11/5 Tiago Cunha <tiago...@gmail.com>
>
> >>>> Bom dia Ivan.
>
> >>>> Não sei se me espressei corretamente... mas nao sei usar o scaffold
> >>>> direito, mas pelo que eu vi, se eu criar a base de dados antes de usar o
> >>>> scafold, ele nao gera as telas...(crud).
>
> >>>> Ainda estou lendo livros pra, conhecer melhor rails.
>
> >>>> :)
>
> >>>> 2009/11/5 Ivan Schuster <ihschus...@gmail.com>
>
> >>>> Tiago, o fato de estares com a base pronta não impede o funcionamento do
> >>>>> scaffold.
> >>>>> Como és iniciante, não esquece que para que as alterações sejam
> >>>>> realizadas no SGBD é necessário executar o "rake db:migrate".
>
> >>>>> A respeito da engenharia reversa do SGBD para o scaffold, não sei da
> >>>>> existência de nada que faça isto, mas não deve ser difícil criar um "job"
> >>>>> para fazer isto. Dependendo o tamanho da base e do teu interesse em utilizar
> >>>>> o scaffold com poucas modificações, pode valer a pena.
>
> >>>>> Abs,
>
> >>>>> Ivan
>
> >>>>> 2009/11/5 Tiago Cunha <tiago...@gmail.com>

Tiago Cunha

unread,
Nov 6, 2009, 10:47:05 AM11/6/09
to rail...@googlegroups.com
Boa tarde a  todos.

Marc, exatamente isso.

A base no caso ja existe, e pra piorar eu nao poderei mexer nela, pois outras aplicaçoes web a usam.

Li que existe um plugin,GetNA, que se eu estiver no padrao rails, ele consegue importar pra mim uma base legada.

Como estou fora do padrao e nao posso mexer... vou tentar outra alternativa, criar nova tabela no padrao rails dentro desse banco e ate mesmo duplicar umas pra nao mexer.

Vamos aguardar o rails 3, pra ver as melhorias.

Abraços e Obrigado.

2009/11/6 MarcRic <mar...@gmail.com>

Tiago,
Reply all
Reply to author
Forward
0 new messages