当我使用像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。
所以我的问题:什么是最好的做法来存储列的描述?