O dbmodel gem aceita arquivos de modelo de dados de XML, chama generate model ou generate scaffold para tabelas com relacionamento, e insere relações (“has_many :beers”) em arquivos Model apropriado. A inserção de relacionamento em arquivos Model são arquivos existentes não destrutivos não são removidos e o código atual é mantido

Instalação:

Baixe DBDesigner 4.0. (O Workbench sucessor será lançado este ano) Carregue e instale

gem install dbmodel-0.1.0.gem –rdoc

O gem patch se você não estiver no Windows para lidar com caminhos corretamente. Brian Bugh forneceu o seguinte patch:

91c91
< modelfile = File.dirname(xmlfile) + File.join(”, ‘..’, ‘app’, ‘models’, table[’name’].singularize + ‘.rb’) — > modelfile = File.dirname(xmlfile) + ‘\..\app\models\\’ + table[’name’].singularize + ‘.rb’ 265c265 < require File.dirname(f) + File.join(”, ‘..’, ‘config’, ‘environment’) # Better way to do this? — > require File.dirname(f) + ‘/../config/environment’ # Better way to do this? 283c283 < if ex.message =~ /config#{File::SEPARATOR}environment/ — > if ex.message =~ /config\/environment/

Como usar:

Use DBDesigner para construir tabelas e especificar relações entre as mesmas. Etiquete as relações de maneira que o Rails compreenda, como has_many :cervejas ou has_and_belongs_to_many :coisas. Como o tempo você pode usar habtm :X em vez de has_and_belongs_to_many :X. Nota que você nunca precisará etiquetar um link belongs_to — relacionamento são definidos do ponto de vista da tabela, então o belongs_to é implícito na relação.
Salve seu modelo em um arquivo DBDesigner XML em sua pasta app/db. Então use o comando:

dbmodel mymodel.xml

Este gerará arquivos de modelo para todas as tabelas com relacionamento. Você pode escolher scaffolding por embedding tags dentro de seus comentários de tabelas.

Tradução do site: http://wiki.rubyonrails.com/rails/pages/DBModelGem