如何在续集迁移中创建hstore列?

时间:2014-01-14 20:39:15

标签: ruby postgresql migration sequel hstore

如何在续集迁移中创建hstore列?

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

失败。我是否需要加载扩展程序?

2 个答案:

答案 0 :(得分:2)

我在文档中找不到这个,所以我在IRC上询问。

  

jeremyevans:使用method_missing,允许您使用任何自定义数据库类型

因此,只要启用了扩展程序,您就可以指定jsonjsonb

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' })

答案 1 :(得分:0)

作为Author's gem answered me,数据库在使用之前需要这个额外的扩展名:

CREATE EXTENSION hstore