• Как правильно версионировать входные данные?

    uhfath
    @uhfath Автор вопроса
    Типа в прошлой версии это был пол клиента, а теперь вес, в следующей - рост?

    Ну примерно так. Уже встретил нечто подобное.

    В общем я понял Вашу идею. Разбавлять XML_VER_2.0 полями из XML_VER_1.0.
    Но тогда надо и в скрипты вшивать это все. И не получится чистого XML_VER_2.0.
    Мне кажется это усложнит весь процесс.

    На SO подсказали заюзать напрямую svn, git, mercurial, you_name_it, как я и думал. Тупо переключать ветки.
    Сейчас обдумываю этот вариант. Он чуть сложнее в реализации, но чище по коду и проще в сопровождении, как мне кажется.
  • Как правильно версионировать входные данные?

    uhfath
    @uhfath Автор вопроса
    Обновил вопрос с примером.
    Так наглядней.
    Если следовать варианту "перевести XML_VER_1.0 в XML_VER_2.0", то последний должен будет выглядеть уже так:
    XML_VER_2.0:
    • FIELD_1: 10
    • FIELD_2: 20
    • FIELD_3: 30
    • FIELD_4: 40

    Но это примитивный пример.
    Сам смысл полей может меняться от версии к версии.
  • Как правильно версионировать входные данные?

    uhfath
    @uhfath Автор вопроса
    Последнее.
    Каждая выгрузка идет в базу (все версии).
    Вышла новая версия. В ней нет поля. Но старая версия (она так же передается рядом с новой) это поле содержит. И оно идет в базу.
    Другими словами, из новой версии поле исключили, но в старой оставили. В один период надо обрабатывать и новую и старую одновременно. Просто для новой отсутствующее поле получит некое дефолтное значение в базе.
  • Как правильно версионировать входные данные?

    uhfath
    @uhfath Автор вопроса
    Нет. Не пойдет.
    OLD_FIELD на момент старой версии было актуально и в базе должно присутствовать, т.к. там вся история.
    Это потом оно не нужно, но в какое-то время было необходимо и при всяких отчетах должно быть на этот период. А дальше уже просто будет либо null либо какое-то дефолтное.
    Таким образом придется раздувать версию 1.2 старыми полями.
  • Как правильно версионировать входные данные?

    uhfath
    @uhfath Автор вопроса
    Может я не так понял?
    К примеру есть версия 1.1 и 1.2.
    В версии 1.1 есть поле OLD_FIELD. В версии 1.2 такого поля нет.
    По вашей идее (если я верно ее понял) мы делаем обработчики только для версии 1.2, а версию 1.1 приводим к 1.2 и просто шлем по пайплайну, верно? Как тогда быть с полем OLD_FIELD?
  • Как правильно версионировать входные данные?

    uhfath
    @uhfath Автор вопроса
    В новой версии может не быть каких-то полей, а в старой они есть и должны пройти валидацию и сохраниться в базу. Либо же какие-то из полей поменяют свою иерархию. Такое уже наблюдается.