當我使用像Sequel這樣的ORM時,模型的列由連接的數據庫定義。我如何獲得表格列的文檔?ORM(特別是Sequel)存儲列描述的位置?
例(續集,但我認爲原則是AR相同):
我創建一個表,這個遷移:
Sequel.migration do
up do
create_table(:person) do
primary_key :id
String :name, :null=>false
end
end
down do
drop_table(:person)
end
end
沒有辦法添加一列描述到數據庫(或者是否有?請不要DB特定的解決方案)。
當我產生我的RDoc文檔對應的模型被定義爲
class Person < Sequel::Model
end
,對人的文檔是「空」的,我沒有得到任何列的說明。
我可以一個欄添加一個getter法喜歡這裏:
class Person < Sequel::Model
#Name of the person
attr_reader :name
end
我得到RDoc的描述,但這裏有兩個問題:
Person#name
永遠是零,連接到數據庫丟失- 如果它能工作,這是違反DRY原則。
我可以添加所有列的列表:
#Columns:
# * name: Name of the person
# ...
class Person < Sequel::Model
end
但同樣:
- 這破壞了DRY原則。
- 我想查看所有可用的列,如getter-methods。
我創建了annotate-gem。但這個寶石刪除了以前的評論,它只增加了技術信息。我無法添加評論。
一些其他模型框架,如datamapper,mongomaper和mongoid直接定義模型中的屬性。 (source)但我不想改變我的ORM。
所以我的問題:什麼是最好的做法來存儲列的描述?