删除旧模式后无法在 Kafka 中添加新模式
Can't add a new schema in Kafka after deleting the old one
我也在尝试为键使用适当的架构。默认情况下,它创建为:
{"subject":"AVROTEST-key","version":1,"id":60,"schema":"\"string\""}
但我想要它:
{"subject":"AVROTEST-key","version":1,"id":60,"schema": "{\"type\":\"record\",\"name\":\"AVROTEST\",\"fields\":[{\"name\":\"key\",\"type\":\"long\"}]}"}
因为兼容性问题,我试过彻底删除,重新添加。我使用
删除了它
curl -X DELETE http://XXXXXX.XXXXXX:1234/subjects/AVROTEST-key/versions/1
没有其他版本,删除后尝试GET时出现404错误,说明删除成功。但是当我尝试注册一个新模式时,我得到这个错误:
"error_code":409,"message":"Schema being registered is incompatible
with an earlier schema"
没有模式,怎么会和早期的模式不兼容呢?我错过了什么?
这是我注册新架构的方式:
curl -X POST -H "Content-Type: application/vnd.schemaregistry.v1+json" --data '{"schema": "{\"type\":\"record\",\"name\":\"AVROTEST\",\"fields\":[{\"name\":XXXXXX.XXXXXXXX:1234/subjects/AVROTEST-key/versions
看起来还有另一个我不知道的架构版本。实际上是一个有趣的错误,我应该删除所有版本,而不是 [1]。所以输入命令
curl -X DELETE http://XXXXXX.XXXXXX:1234/subjects/AVROTEST-key/versions/
解决了我的问题。所有以前的模式都被删除。但请注意,新架构不会注册为版本 [1]。它将增加最新的模式ID。
我也在尝试为键使用适当的架构。默认情况下,它创建为:
{"subject":"AVROTEST-key","version":1,"id":60,"schema":"\"string\""}
但我想要它:
{"subject":"AVROTEST-key","version":1,"id":60,"schema": "{\"type\":\"record\",\"name\":\"AVROTEST\",\"fields\":[{\"name\":\"key\",\"type\":\"long\"}]}"}
因为兼容性问题,我试过彻底删除,重新添加。我使用
删除了它curl -X DELETE http://XXXXXX.XXXXXX:1234/subjects/AVROTEST-key/versions/1
没有其他版本,删除后尝试GET时出现404错误,说明删除成功。但是当我尝试注册一个新模式时,我得到这个错误:
"error_code":409,"message":"Schema being registered is incompatible with an earlier schema"
没有模式,怎么会和早期的模式不兼容呢?我错过了什么?
这是我注册新架构的方式:
curl -X POST -H "Content-Type: application/vnd.schemaregistry.v1+json" --data '{"schema": "{\"type\":\"record\",\"name\":\"AVROTEST\",\"fields\":[{\"name\":XXXXXX.XXXXXXXX:1234/subjects/AVROTEST-key/versions
看起来还有另一个我不知道的架构版本。实际上是一个有趣的错误,我应该删除所有版本,而不是 [1]。所以输入命令
curl -X DELETE http://XXXXXX.XXXXXX:1234/subjects/AVROTEST-key/versions/
解决了我的问题。所有以前的模式都被删除。但请注意,新架构不会注册为版本 [1]。它将增加最新的模式ID。