我正在考虑将一些PostgreSQL数据库迁移到CockroachDB。我有一个应用程序使用PostgreSQL hstore数据类型。
有没有一种等效的方法可以将这些数据存储在 CockroachDB 中?
如果不是,在尽可能少地更改应用程序代码的情况下映射此数据类型的最佳做法是什么?
CockroachDB 有一个与 PostgreSQL 非常相似的jsonb
类型,因此您可以将hstore
转换为jsonb
对象(即像'a=>x, b=>y'
这样的hstore
会在jsonb
上变得{"a":"x", "b":"y"}
(。
与hstore
一起使用的最常见(可能(运算符是->
基于键访问值。使用jsonb
,->
会给你一个jsonb
的结果,所以你想切换到->>
给你一个字符串(就像->
hstore
一样(。@>
运算符的行为与jsonb
(CockroachDB和PostgreSQL的(类似,就像它对hstore
的行为一样,但需要进行一些更改。当然,任何hstore_...
功能都需要更换。
CockroachDB的jsonb
与PostgreSQL非常相似。此外,hstore
被弃用,取而代之的是PostgreSQL中的jsonb
。因此,在尝试迁移到 CockroachDB 之前,您可能希望在 PostgreSQL 中用jsonb
替换hstore
。