2014-01-14 2 views
3

Как создать столбец hstore в миграции Sequel?Как создать столбец hstore в миграции Sequel?

Sequel.migration do 
    change do 
    add_column :logs, :geo, HStore 
    end 
end 

не работает. Нужно ли загружать расширение?

+0

Я подозреваю, что ваш ответ лежит в этой документации, http://sequel.jeremyevans.net/rdoc/files/doc/postgresql_rdoc.html. В частности, посмотрите заголовок ** Поддержка типа базы данных PostgreSQL ** –

+1

Спасибо, что указали мне правильную страницу документа, но я все еще не могу выполнить миграцию. Я пробовал разные имена, такие как: hstore,: h_store,: pg_hstore, HStore и т. Д. Я загрузил расширение pg_store DB и даже добавил gemfile в gemfile. Пробовал с json datatype и работает нормально, но я предпочитаю hstore. – MegaTux

+0

Возможно, это ошибка в драгоценности. Вы сообщили об этом сопровождающим? –

ответ

0

Как Author's gem answered me, БД необходимо это дополнительное расширение перед использованием:

CREATE EXTENSION hstore 
+1

BTW, правильная строка: add_column: logs,: geo,: hstore # или 'hstore' – MegaTux

1

я не мог найти это в документации, поэтому я спросил на IRC.

jeremyevans: используется method_missing, что позволяет использовать любые типы пользовательских баз данных

Таким образом, вы можете указать json, jsonb до тех пор, как расширение включено:

Sequel.migration do 
    change do 
    create_table :foo do 
     primary_key :id 
     jsonb :bar 
    end 
    end 
end 

Чтобы включить расширение:

Sequel.extension :pg_json 

И создать новый рекорд:

foo = Foo.new bar: Sequel.pg_jsonb({ 'baz' => 'qux' }) 
Смежные вопросы