2011-02-28 27 views
3

活動記錄的車型我要尋找一個工具或可我老龐大數據庫轉換爲活動記錄模型定義...像逆向工程的方法...如何從數據庫

+0

這不是「逆向工程」。逆向工程意味着某種加密/模糊處理,而數據庫模式中有完整的純文本「源代碼」。 – meagar

+2

〜meagar這不是逆向工程的意義。 –

+0

這個rare_map gem做你期望做的事: https://github.com/wnameless/rare_map – user3360932

回答

6

這是少了反向工程問題以及更多「你的遺留數據庫是否遵守活動記錄約定」問題。大多數人並沒有從我的經驗中,在數據端進行一些遷移工作幾乎更容易,以使其符合這些約定的狀態。 Rails是一個非常自以爲是的軟件,你爭論得越少,你就會越開心。

我的兩分錢...

+0

@meagar是對的,如果代表你的模型的表確實堅持相應的話,簡單地擴展ActiveRecord :: Base –

+1

+1 「越少你爭論它,你會更快樂」 – seand

0

ActiveRecord將爲您做到這一點。您實際上不必在模型中指定列。假設一個完整的users表,只是把app/models/user.rb

class User < ActiveRecord::Base 

end 

什麼要執行過額外的驗證可後來加入的下面。

也就是說,你可能不想這樣做。由於Rail的「約定配置」的座右銘,Rails對嘗試移植舊項目的人來說非常困難。如果您嘗試將Rails轉換爲您現有的數據庫架構,那將是一場艱苦的戰鬥。

1

對不起,我也不知道一個工具。但創建一個活躍的記錄模型非常簡單,就像微薄的表現。此外,您可能必須描述表名和主鍵:

class Artikelgruppe < ActiveRecord::Base 
    set_table_name "tblArtGrp" 
    set_primary_key "ArtGrpID" 
end 

由於我的Rails應用程序只使用我們原有的數據庫,我更喜歡創造具體到我的數據庫應用程序的需求,意見的一小部分。我真的有問題要在Rails中描述一個例如7個模型的連接,但創建一個連接7個數據庫表的視圖非常簡單。

爲什麼Rails的人仍然認爲他們是宇宙的中心?我有十幾種用不同語言編寫的應用程序,共同點就是數據庫。想象一下,我將不得不改變數據庫,以使Rails高興...

0

RMRE似乎是這裏列出的兩個最好的。您可以在製作一個特殊的rare_map.yml後,在您的rails根目錄下運行它,該特殊的rare_map.yml只是您希望掃描的數據庫的數據庫配置。如果你在rails下,那麼你可以在./config文件中找到它,如果沒有的話,你可以在你的app的根目錄下找到它。

一件好事:對於非rails應用程序,它將生成一個[模塊] _base.rb,它創建一個單獨的ActiveRecord :: Base,它將這些類填充到您選擇的模塊中,並創建一個單獨的ActiveRecord ::每個基地。

RMRE生成的模型具有爲您自動填寫的所有關係(belongs_to,has_many等)。它將用於非Rails應用程序,或者如果您在配置中指定它,那麼模型將爲您提供一個模塊。

上面提到的寶石rare_map只爲我創建了空模型,它不會爲你買得多。