【发布时间】:2022-02-04 23:38:26
【问题描述】:
我在这样的 AVO 架构中有一个枚举:
{
"type": "record",
"name": "MySchema",
"namespace": "com.company",
"fields": [
{
"name": "color",
"type": {
"type": "enum",
"name": "Color",
"symbols": [
"UNKNOWN",
"GREEN",
"RED"
]
},
"default": "UNKNOWN"
}
]
}
当使用 FULL(意味着 BACKWARD 和 FORWARD)兼容模式时,我应该如何向 enum 添加新符号?这不可能吗?
我读了Avro schema : is adding an enum value to existing schema backward compatible?,但没有帮助。
每当我尝试向符号添加新值时,即使我在枚举上有默认值,架构注册表中的兼容性检查也会失败。经过一番测试,似乎添加一个新值是向后兼容但不向前兼容。但是,由于我设置的默认值,我希望它也与 FORWARD 兼容。事实上,旧的阅读器模式应该能够读取新模式写入的值,并且在它不知道新符号时默认为“UNKNOWN”枚举值。
【问题讨论】:
标签: java avro confluent-schema-registry