【发布时间】:2018-10-20 02:52:57
【问题描述】:
我正在考虑将一些 PostgreSQL 数据库迁移到 CockroachDB。我的一个应用程序使用 PostgreSQL hstore 数据类型。
有没有一种等效的方法可以将这些数据存储在 CockroachDB 中?
如果不是,在尽可能少地更改应用程序代码的情况下映射此数据类型的最佳实践是什么?
【问题讨论】:
标签: database postgresql cockroachdb
我正在考虑将一些 PostgreSQL 数据库迁移到 CockroachDB。我的一个应用程序使用 PostgreSQL hstore 数据类型。
有没有一种等效的方法可以将这些数据存储在 CockroachDB 中?
如果不是,在尽可能少地更改应用程序代码的情况下映射此数据类型的最佳实践是什么?
【问题讨论】:
标签: database postgresql cockroachdb
CockroachDB 有一个与 PostgreSQL 非常相似的 jsonb 类型,因此您可以将您的 hstores 转换为 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 中将 hstore 替换为 jsonb。
【讨论】: