Обновите поле avdl (avro schema) с обязательного значения (NULL) - PullRequest
0 голосов
/ 12 января 2019

Мой avdl определяется так,

@namespace("my.event")
protocol Customer {

 record Address { 
  string street;
 }
}

Но после того, как событие опубликовано и схема зарегистрирована, я хочу сделать тип street, чтобы разрешить также значение null. Я хочу, чтобы изменение было совместимо с обратной / обратной связью. Как я могу это сделать? Будет ли определение нового пространства имен до того, как запись сможет это сделать? (https://github.com/ga4gh/ga4gh-schemas/issues/344#unions или https://docs.oracle.com/database/nosql-12.2.4.4/GettingStartedGuide/schemaevolution.html) Как насчет

union{null, string} street  = null;

1 Ответ

0 голосов
/ 15 января 2019

Да, если вы хотите, чтобы поле больше не требовалось, вы можете обернуть его в ноль, с его существующим типом. Я работаю с людьми, которые, как я вижу, делают это довольно часто, и Реестр схемы слияния настроен на настройку BACKWARDS для этих тем.

Примечание. Вы можете (и должны) всегда проверять совместимость вашей новой схемы перед публикацией событий

...