Is adding an alias a backwards incompatible change? I have two schemas. I'm
going from V2 to V1 and getting an error that the field is missing. Am I
missing something again?
Here is V1:
{
"namespace": "model",
"type": "record",
"name": "SimpleCard",
"fields": [
{
"name": "suit",
"type": "string",
"doc" : "The suit of the card"
}
]
}
Here is V2:
{
"namespace": "model",
"type": "record",
"name": "SimpleCardV2",
"aliases": ["SimpleCard"],
"fields": [
{
"name": "cardsuit",
"type": "string",
"doc" : "The suit of the card",
"aliases": ["suit"]
}
]
}
Here is the stack trace:
org.apache.avro.AvroTypeException: Found model.SimpleCardV2, expecting
model.SimpleCard, missing required field suit
at org.apache.avro.io.ResolvingDecoder.doAction(ResolvingDecoder.java:292)
at org.apache.avro.io.parsing.Parser.advance(Parser.java:88)
at
org.apache.avro.io.ResolvingDecoder.readFieldOrder(ResolvingDecoder.java:130)
at
org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:215)
at
org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:175)
at
org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:153)
at
org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:145)
Thanks,
Jesse