Files
progcode/web/public/assets/editorial/2027/bitrix-lessons-2027-migration-evidence-loop.svg
2026-07-31 22:26:56 +03:00

17 lines
2.8 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 500" role="img" aria-labelledby="title desc">
<title id="title">Цикл проверки миграции Bitrix-поля</title>
<desc id="desc">Цикл соединяет mapping, нормализацию, запись, повторное чтение и повторный запуск. Ошибка в пустом значении возвращает поле на уточнение.</desc>
<defs><marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto"><path d="M0,0 L9,3 L0,6 Z" fill="#52657d"/></marker></defs>
<rect width="720" height="500" fill="#fff"/><style>text{font-family:Arial,sans-serif;fill:#172033}.head{font-size:23px;font-weight:700}.bold{font-size:15px;font-weight:700}.small{font-size:13px}.box{fill:#eef4ff;stroke:#3767b1;stroke-width:2}.good{fill:#e9f8ef;stroke:#288653;stroke-width:2}.bad{fill:#fff0f0;stroke:#b53838;stroke-width:2}.line{fill:none;stroke:#52657d;stroke-width:3;marker-end:url(#arrow)}</style>
<text x="36" y="42" class="head">Миграция поля: запись не равна проверке</text>
<rect x="42" y="120" width="150" height="80" rx="10" class="box"/><text x="117" y="151" text-anchor="middle" class="bold">Legacy input</text><text x="117" y="176" text-anchor="middle" class="small">PERSONAL_PHONE</text>
<rect x="285" y="120" width="150" height="80" rx="10" class="box"/><text x="360" y="151" text-anchor="middle" class="bold">Mapping</text><text x="360" y="176" text-anchor="middle" class="small">phone · email</text>
<rect x="528" y="120" width="150" height="80" rx="10" class="good"/><text x="603" y="151" text-anchor="middle" class="bold">Write</text><text x="603" y="176" text-anchor="middle" class="small">один стабильный ID</text>
<path d="M192 160h88M435 160h88" class="line"/>
<rect x="285" y="300" width="150" height="80" rx="10" class="good"/><text x="360" y="331" text-anchor="middle" class="bold">Read-back</text><text x="360" y="356" text-anchor="middle" class="small">сравнить смысл</text>
<rect x="42" y="300" width="150" height="80" rx="10" class="box"/><text x="117" y="331" text-anchor="middle" class="bold">Retry</text><text x="117" y="356" text-anchor="middle" class="small">не создать дубль</text>
<path d="M603 200v86H435M285 340h-88M117 300V235H360V200" class="line"/>
<rect x="500" y="300" width="178" height="80" rx="10" class="bad"/><text x="589" y="331" text-anchor="middle" class="bold" fill="#991b1b">Проверить пустоту</text><text x="589" y="356" text-anchor="middle" class="small" fill="#991b1b">missing ≠ clear</text>
<text x="360" y="450" text-anchor="middle" class="small">Вход, read-back и повтор должны иметь один понятный mapping.</text>
</svg>