我有一个使用Postgresql 9.4作为后端的rails项目。我有这样的列:如何在rails中使用jsonb
t.json :slot_details, null: false, default: {}
如何从JSON更改为JSONB?我应该添加索引,并将更改为JSONB?
我有一个使用Postgresql 9.4作为后端的rails项目。我有这样的列:如何在rails中使用jsonb
t.json :slot_details, null: false, default: {}
如何从JSON更改为JSONB?我应该添加索引,并将更改为JSONB?
这里是它如何使用Rails 4.2
t.jsonb :slot_details, index: true, default: {}
上面的答案扔误差为我工作。
要迁移它,可以执行以下操作。在这种情况下,Payload最初是一个json字段。
class AlterJsonbToJsonAndBack < ActiveRecord::Migration
def up
change_column :dynamics, :payload, 'jsonb USING CAST(payload AS jsonb)'
end
def down
change_column :dynamics, :payload, 'json USING CAST(payload AS json)'
end
end
要了解如何查询jsonb在Rails的4.2,结账this article
这会删除数据吗? – coderVishal 2016-02-07 10:29:45
这不会删除数据。它将json转换为jsonb。 – Robert 2016-02-08 17:34:25
你可以发布你的错误?我上下运行了该迁移以确认它对我有用。 – Robert 2014-12-30 13:59:24
@Robert错误是像无法将字符串转换为json或类似的东西。 – Aravind 2014-12-30 14:27:32
我的迁移只适用于json到jsonb。你的领域是一个字符串 - 不是JSON? – Robert 2014-12-30 16:17:29