簡體   English   中英

如何從數據庫生成活動記錄模型

[英]how to generate active record models from database

我正在尋找一種工具或方法,可以將我龐大的舊數據庫轉換為活動記錄模型定義......就像逆向工程......

這不是一個逆向工程問題,更像是“遺留數據庫是否符合活動記錄約定”問題。 大多數人沒有,根據我的經驗,在數據端進行一些遷移工作幾乎更容易使其處於一種狀態,以便它確實遵守這些約定。 Rails是一款非常自以為是的軟件,你與之爭論的越少,你就越幸福。

我的兩分錢......

RMRE似乎是這里列出的兩個中最好的。 您可以在創建一個特殊的rare_map.yml之后在rails根目錄中運行它,這只是您希望它掃描的數據庫的數據庫配置。 如果您在rails之下,則可以使用./config,如果不是,則可以在您的應用程序的根目錄中。

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

RMRE生成的模型具有自動填寫的所有關系(belongs_to,has_many等)。 它適用於非rails應用程序,或者如果您在配置中指定它,則將模型填充到模塊中。

上面提到的rare_map gem只為我創建了空模型,這並沒有給你帶來很多好處。

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

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

由於我的Rails應用程序僅使用遺留數據庫的一小部分,因此我更喜歡在數據庫中創建特定於我的應用程序需求的視圖。 我真的有問題在Rails中描述一個連接,例如7個模型,但是創建一個用於連接數據庫中的7個表的視圖非常容易。

為什么Rails人仍然認為他們是宇宙的中心? 我有十幾個用不同語言編寫的應用程序,共同點是數據庫。 想象一下,我將不得不更改數據庫以使Rails滿意...

ActiveRecord會為您做到這一點。 您實際上不必在模型中指定列。 假設有一個完整的users表,只需將以下內容放在app/models/user.rb

class User < ActiveRecord::Base

end

之后可以添加您想要執行的其他驗證。

也就是說,你可能不想這樣做。 對於試圖移植舊項目的人來說,Rails是非常困難的,因為Rail的“約定優於配置”的座右銘。 如果您嘗試將Rails彎曲到現有數據庫模式,那將是一場艱苦的戰斗。

看看RMRE gem。 這是由RMRE作者撰寫的介紹博客文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM