2013-03-16 100 views
1

Ruby是否有能夠從現有數據庫生成模型/遷移腳本的ORM?ORM for Ruby,能夠從現有數據庫生成模型/遷移腳本

我會用它與sinatra。

+0

只是爲了檢查,你的意思是生成_models_的代碼,_migrations_不腳本? – iain 2013-03-16 19:35:13

+0

用於遷移的umm ..腳本也將執行:3 – Kokizzu 2013-03-16 20:18:00

+0

什麼是「模型腳本」? – 2013-03-16 20:31:12

回答

2

您可以使用Sequel's migrations轉儲現有模式(請參閱「將當前模式作爲遷移轉儲」到鏈接頁面下)。

此外,我知道如果您使用Postgresql或MS SQL Server,則可以將數據庫轉儲爲腳本,既可以作爲架構,也可以作爲數據。如果您要使用的ORM沒有遷移工具(或者即使遷移工具),您也可以使用這些腳本,甚至將它們嵌入到遷移中(其他ORM可能也可以)。


編輯:生成模型。

如果你想生成模型,那麼續集有一個reflection 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_listModel association basics