Json-Schema演变:正在注册的模式与早期的模式不兼容

时间:2020-07-09 09:44:48

标签: jsonschema confluent-schema-registry

我正在尝试进行非常基本的json-schema演变: 从这个:

{
  "$id": "http://example.com/myURI.schema.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "myField1": {
      "type": "integer"
    }
  },
  "required": ["myField1"],
  "type": "object"
}

在此新版本中,添加了另一个字段“ myField2”,但这不是必需的。

  "$id": "http://example.com/myURI.schema.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "myField1": {
      "type": "integer"
    },
    "myField2": {
      "type": "integer"
    }
  },
  "required": [
    "myField1"
  ],
  "type": "object"
}

但是我一直在模式注册表UI中:

正在注册的架构与早期的架构不兼容

我想念什么吗?

1 个答案:

答案 0 :(得分:0)

您需要为新字段定义默认值。请参阅融合的文档https://docs.confluent.io/current/schema-registry/avro.html。这样可以保持向后兼容性。