Если перенос данных остановился на середине, самое опасное - запустить его заново без понимания, что уже перенесено. Так появляются дубли и потерянные связи.
Почему это важно
Миграция прерывается из-за таймаута, ошибки строки, разрыва соединения, лимита памяти, блокировки базы или неподготовленного формата данных.
Что проверяю в первую очередь
- На какой записи остановился перенос.
- Есть ли журнал обработанных объектов.
- Можно ли запускать импорт повторно безопасно.
- Не появились ли дубли.
- Какая ошибка остановила процесс.
Как исправляю
Я сначала фиксирую состояние источника и приемника, потом добавляю checkpoints и безопасный повторный запуск.
- Определяю последнюю успешно перенесенную запись.
- Проверяю целостность уже загруженных данных.
- Исправляю ошибку, остановившую перенос.
- Добавляю idempotency и checkpoints.
- Продолжаю перенос с контрольной сверкой.
Что будет после исправления
- Перенос продолжается без дублей.
- Понятно, что уже загружено.
- Ошибочные строки можно обрабатывать отдельно.
- Следующие миграции проходят надежнее.
Что подготовить
- Источник и приемник данных.
- Лог остановки.
- Объем данных.
- Правила сопоставления идентификаторов.
Вопросы и ответы
Можно ли решить точечно?
Да, если можно определить состояние на момент остановки. Важно не запускать импорт заново вслепую.
Почему не стоит откладывать?
Повторный запуск без контроля может испортить базу сильнее, чем сама остановка миграции.
Нужна похожая задача?
Опишите проблему и пришлите ссылку, скрин или лог. Я разберу причину, предложу понятный план исправления и не буду обещать результат без первичного просмотра.