Один контракт данных, разные адаптеры: как перестать писать миграцию магазина заново
При переезде магазина с InSales автор получил выгрузку в UTF-16 LE с BOM и табуляцией вместо запятой. Сначала это казалось разовой неприятностью, но на следующих проектах повторилась почти вся работа: связать заказ с клиентом, не создать дублей, не потерять адреса страниц, уметь перезапуститься. Вывод — середина должна быть одна, а платформенная специфика живёт в тонком слое на входе.
Готовые инструменты вроде Airbyte и n8n хороши для регулярной синхронизации, но при разовой миграции сложность — в доменных правилах. Их всё равно пишут руками, а тестировать и перезапускать кусочком удобнее в своём каркасе.
В статье — код из реального проекта: собственного магазина, переехавшего с InSales на движок на Next.js и PostgreSQL. Полностью пройдена одна миграция, остальное — проектные требования к каркасу.
Читать на Хабре
👉 Node.JS [ru]
Post #5644
902
- ❤ 1