哪个Ruby ORM支持PostgreSQL的数组数据类型?

时间:2011-05-06 14:34:27

标签: ruby postgresql orm activerecord datamapper

我需要找到支持PostgreSQL的Array列数据类型的Ruby ORM(Active Record,Sequel等)。

http://www.postgresql.org/docs/8.2/interactive/arrays.html

任何提示?

2 个答案:

答案 0 :(得分:3)

Sequel的sql_subscript仅用于在查询时访问值,正如您在之前的评论中所提到的那样。

Sequel除此之外没有对数据库阵列的特殊支持。您可以在create_table块中创建数组:

DB.create_table do
  column :numbers, 'integer[]'
end

但这不是特别的支持,因为Sequel正在传递这种类型。在构建查询时,没有内置支持获取ruby数组并将其转换为PostgreSQL数组,并且在检索时也不支持将PostgreSQL数组转换为ruby数组(它将作为字符串返回)。

话虽这么说,Sequel的设置使得PostgreSQL的数组扩展和提供完全集成的hstore类型可以相对轻松地实现。有人一直致力于支持hstore(我认为它已经完成或接近它,但我还没有对它进行审核),对数组的支持应该与此类似。未来版本的Sequel可能会默认提供此类支持,也可能作为官方扩展提供。

答案 1 :(得分:0)

Sequel通过符号(和其他)上的sql_subscript方法支持这一点。

最初通过Symbol#|Symbol#/在版本0.4.3(2007年12月)中添加了支持,但更改为在版本2.12.0中使用新方法(2009年4月) 。搜索CHANGELOG以获取更多提及已经发生的改进。