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