将 hstore 数据类型从 PostgreSQL 迁移到 CockroachDB

Migrating hstore datatypes from PostgreSQL to CockroachDB

我正在考虑将一些 PostgreSQL 数据库迁移到 CockroachDB。我的一个应用程序使用 PostgreSQL hstore 数据类型。

在 CockroachDB 中是否有等效的方法来存储这些数据?

如果不是,映射此数据类型并尽可能少更改应用程序代码的最佳实践是什么?

CockroachDB 有一个与 PostgreSQL 非常相似的 jsonb 类型,因此您可以将 hstores 转换为 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