首页 > 解决方案 > pq:集群版本不支持 JSONB(需要>= 2.0)

问题描述

我们正在使用 CockroachDB。我们正在尝试使用命令“导入”一个 .sql 转储文件

cockroach sql --database=database name < file-name.sql --insecure

按下回车后,在数据库中创建了没有Jsonb的表并抛出错误说:

pq:集群版本不支持 JSONB(>= 需要 2.0
错误:pq:集群版本不支持 JSONB(>= 需要 2.0)
运行“sql”失败

我们的集群版本与 cockroachdb v2.0.5(Latest) 的版本相同。我们已经尝试过升级和类似的事情,但没有运气。

我们的集群构建版本:

构建:CCL v2.0.5 @ 2018/08/13 17:59:42 (go1.10)

标签: cockroachdb

解决方案


CockroachDB 区分构建版本(在您的实例中为 v2.0.5)和集群版本。集群版本可以滞后于构建版本以允许降级。(一旦集群版本被提升,您就不能再降级)。在未发布的 v2.1 系列中,我们添加了在集群中的所有节点升级后自动升级集群版本的功能。但在 v2.0.x 中,您必须手动执行此操作。检查集群版本:

root@:26257/> SHOW CLUSTER SETTING version;
+---------+
| version |
+---------+
|     1.1 |
+---------+

在这里,我正在运行 v1.1.7。如果我将二进制文件升级到 v2.0.5,集群版本不变:

root@:26257/> SHOW CLUSTER SETTING version;
+---------+
| version |
+---------+
| 1.1     |
+---------+

为了升级集群版本,我们需要完成升级

root@:26257/> SET CLUSTER SETTING version = crdb_internal.node_executable_version();
SET CLUSTER SETTING

root@:26257/> SHOW CLUSTER SETTING version;
+---------+
| version |
+---------+
| 2.0     |
+---------+

请参阅本教程中有关升级集群的所有内容。如果您已执行所有这些步骤并SHOW CLUSTER SETTING version指示 2.0 并且您的 JSONB 列仍然无法正常工作,那么我们将需要更深入地了解正在发生的事情。


推荐阅读