После импорта записи могут оказаться на месте, но связи между ними потеряны: заказы без клиентов, товары без категорий, заявки без статусов.
На первый взгляд данные перенесены, но пользоваться системой невозможно: отчеты неверные, карточки пустые, история не открывается.
Коротко: при импорте нужно сохранять карту старых и новых id, а не полагаться на автоинкремент.Почему возникает проблема
Связи теряются, когда таблицы загружаются в неправильном порядке, старые id заменяются новыми без mapping, справочники дедуплицируются, внешние ключи отключены или часть строк не импортировалась.
Что проверить в первую очередь
- есть ли старые внешние id
- в каком порядке шла загрузка таблиц
- сохранился ли mapping id
- есть ли orphan-записи
- не появились ли дубли справочников
Как я решаю такую задачу
Я строю сверку связей и восстанавливаю mapping между исходными и новыми идентификаторами.
- анализирую структуру таблиц
- нахожу потерянные связи
- восстанавливаю карту id
- исправляю внешние ключи
- делаю отчет по строкам, которые нельзя связать автоматически
Что подготовить
- исходные данные или дамп
- новую базу
- описание сущностей
- пример потерянной связи
- правила объединения дублей
Сроки и риски
Если сохранились внешние id, восстановление проще. Если они потеряны, потребуется сопоставление по нескольким признакам и ручная проверка спорных случаев.
Чего лучше не делать
Не запускайте повторный импорт поверх рабочей базы без плана. Можно создать еще больше дублей и конфликтов.
FAQ
Что такое orphan-запись?
Запись, которая ссылается на отсутствующую связанную сущность.
Можно ли восстановить связи без старых id?
Иногда да, по устойчивым полям, но точность зависит от данных.
Нужно ли включать foreign keys?
Да, но после подготовки данных, чтобы ограничения не заблокировали импорт полностью.
Как проверить результат?
Сверкой counts, orphan-записей и выборочной проверкой карточек.
Нужна похожая задача?
Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Пришлите ссылку, пример ошибки и короткое описание того, как должно работать. Я посмотрю задачу, предложу безопасный план и скажу, какие доступы понадобятся.
Итог
После исправления импортированные данные должны сохранять смысловые связи: клиент-заказ, товар-категория, заявка-статус и другие ключевые отношения.