1

既存のデータベースからモデル/移行スクリプトを生成できる Ruby 用の ORM はありますか?

私はシナトラでそれを使用します。

4

2 に答える 2

2

Sequelの移行を使用して、既存のスキーマをダンプできます(リンク先ページの「現在のスキーマを移行としてダンプする」を参照)。

また、PostgresqlまたはMS SQL Serverを使用している場合は、データベースをスキーマとして、またはデータとともにスクリプトにダンプできることも知っています。使用するORMに移行機能がない場合(またはある場合でも)、それらのスクリプトを使用でき、移行内に埋め込むこともできます(Sequelは標準のSQL文字列も受け入れますが、他のORMもおそらく可能です) )。


編集:モデルの生成。

モデルを生成したい場合、SequelにはリフレクションAPIがあります。このような何かがあなたを始めることができます:

generator = ->(table) {
  s = <<STR
require 'sequel'
class #{table} < Sequel::Model
  # other stuff here
end
STR
}

DB.tables.reject{|name| name == :schema_info }
         .each do |table|
           File.new "app/models/#{table}.rb" do |f|
             f.write generator.call(table)
           end
         end

アソシエーションを行うのは難しいでしょうが、私は可能だと思います。Database#foreign_key_listモデルの関連付けの基本を見てください。

于 2013-03-16T19:32:06.337 に答える
1

これは ORM ではありませんが、これを行う magic_models という非常に古い gem があります。まだ機能するかどうかはわかりません: http://magicmodels.rubyforge.org/

于 2013-03-16T19:35:25.483 に答える