Какой Ruby ORM поддерживает тип массива PostgreSQL? - PullRequest
2 голосов
/ 06 мая 2011

Мне нужно найти Ruby ORM (Active Record, Sequel и т. Д.), Который поддерживает тип столбца PostgreSQL Array.

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

Любые советы?

Ответы [ 2 ]

3 голосов
/ 06 мая 2011

Сиквел sql_subscript предназначен только для доступа к значениям при запросах, как вы упоминали в предыдущем комментарии.

Sequel не имеет специальной поддержки для массивов баз данных, кроме этого. Вы можете создавать массивы в блоках create_table:

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

Но это не особая поддержка, поскольку Sequel просто передает тип. Нет встроенной поддержки для взятия массива ruby ​​и его преобразования в массив PostgreSQL при построении запроса, а также нет поддержки для преобразования массива PostgreSQL в массив ruby ​​при получении (он будет возвращен в виде строки).

При этом Sequel настроен так, что расширения для массивов PostgreSQL и типов hstore, которые предлагают полную интеграцию, могут быть реализованы с относительной легкостью. Кто-то работал над поддержкой hstore (я думаю, что он закончен или близок к нему, но я еще не рассмотрел его), и поддержка массивов должна быть похожа на эту. Вполне вероятно, что будущая версия Sequel будет поставляться с такой поддержкой либо по умолчанию, либо в виде официального расширения.

0 голосов
/ 06 мая 2011

Сиквел поддерживает это с помощью метода sql_subscript для символов (и других).

Поддержка была первоначально добавлена ​​в выпуске 0.4.3 (2007-декабрь) через Symbol#| и Symbol#/, но была изменена для использования нового метода в выпуске 2.12.0 (2009-апрель) , Найдите в CHANGELOG дополнительные упоминания об улучшениях, произошедших с течением времени.

...