Повторный импорт без страха
Каталог уже в новой системе, библиотекарь исправил сотни записей. Теперь нужно загрузить свежую выгрузку с новыми поступлениями. Как сделать так, чтобы ни одно исправление не пропало.
Первичный импорт — простая задача: пустая база, загружаем всё. Повторный импорт — одна из самых сложных задач всей системы. В базе уже есть исправленные записи, удалённые записи, выданные экземпляры. А в новом файле — смесь старого и нового.
Главный принцип
Для этого система хранит у каждой записи две версии: текущую и последнюю загруженную из источника. При новом импорте она сравнивает каждое поле:
- не менялось нигде — ничего не делать;
- изменилось только в источнике — можно обновить;
- исправлено библиотекарем — оставить его версию;
- изменилось и там и там — показать как конфликт, два значения рядом, решает библиотекарь.
Группы в пробном разборе
- Новые записиИх нет в каталоге. По умолчанию — добавить.
- Надёжные совпаденияЗапись уже есть. По умолчанию — обновить с сохранением правок и добавить новые экземпляры.
- Требуется решениеСовпадение сомнительное — только ручной выбор.
- УдалённыеЗаписи, которые библиотекарь удалил. Пропустить.
Экземпляры с заказами и выдачами импорт не трогает никогда. А весь последний импорт можно отменить в течение 24 часов.
Как это было доработано
Сначала при повторной загрузке того же самого файла система отнесла 1 275 записей к «требуется решение», хотя они должны были совпасть уверенно, а позже пробный разбор и вовсе стал падать с ошибкой. После доработки тот же файл даёт понятную картину: 9 новых записей, 6 144 уверенных совпадения и ни одной сомнительной. Повторная загрузка не создаёт дублей, ручные правки сохраняются. Как это делалось — в статье «22 исправления в три этапа».
И это тоже урок: осторожная ошибка лучше смелой. Лишний вопрос библиотекарю раздражает, но молча слитые две разные книги были бы гораздо хуже.