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