Перенос живого каталога без остановки: чек-лист
Новая платформа готова, а старый каталог продолжает работать: на витрину заходят покупатели, модераторы разбирают очередь. Остановить всё на выходные и «переехать» — самый рискованный путь. Вот как мы переносим каталоги без остановки.
1. Источник — только на чтение
Подключение к старой базе открывается в режиме только чтения. Перенос ничего не может испортить в источнике, а значит, его можно повторять сколько угодно раз.
2. Сохранить связь старых и новых идентификаторов
Если код товара сохраняется, а внутренний идентификатор — нет, связь «старый ID → новый код» нужно сохранить отдельной таблицей. Она понадобится для заказов, ссылок и перенаправлений.
3. Сверка по каждой таблице, а не «в целом»
Сравниваются не только карточки, но и статусы, характеристики, фото, документы, журнал модерации, очередь на модерации. Каждое расхождение объясняется: тестовые карточки отброшены намеренно, дубли одного файла схлопнуты, товар из раздела нужно положить в конечную категорию. В одном из наших переносов — 10 654 карточки, 149 тысяч характеристик и 59 тысяч фото без потерь.
4. Переключение флагами, откат на любом шаге
Витрина переключается на новую платформу по частям — чтение, запись, поиск — за флагами шлюза. Пока старая система жива, любой шаг можно откатить за минуту.
5. Запасной путь и неделя наблюдения
Первое время новая платформа может в случае ошибки читать из старой. Этот путь снимается, когда неделю к старой базе не было обращений, кроме проверок.
6. Гасить — последним шагом
Перед удалением старой системы — архив базы и индекса. Удаление контейнеров и данных — после недели без жалоб. И только потом убираются задания сборки, мониторинг и записи в инвентаризации.
Главное
Перенос — это не скрипт, а процесс с проверками на каждом шаге. Если в нём нет сверки и отката, это не перенос, а надежда.