Алгоритм обновления базы xa-tags
Тридцать лет и три года Илья Муромец лежал на печи.
Такого бодуна Русь ещё не знала...
Вобщем, по части обновления бд не придумал ничего лучше, чем последовательно выбирать записи из базы с путями ниже определённой директории и сверять наличие на фс.
Предварительный алгоритм такой:
2 прохода:
- проход по БД:
- файл есть по указанному пути и имеет верный uuid - пропускаем
- файл есть по указанному пути и имеет другой uuid - смотрим количество ссылок (должно быть не больше одной)
- если такой в базе есть - обновляем путь
- если его в базе нет - выдаём предупреждение
- файла нет по указанному пути - добавляем с список пропавших
- если указан "глубокий" режим сканирования - добавляем uuid в список найденных
- проход по ФС:
- смотри наличие uuid'а
- нет - пропускаем
- есть - смотрим базу uuid'а
- отличается - выдаём info
- наша - смотрим список пропавших
- есть - обновляем базу - удаляем из списка пропавших - продолжаем
- нет - если указан "глубокий" режим сканирования - смотрим список найденных
- есть - удаляем его оттуда - продолжаем
- нет - выдаём предупреждение
- выдаём статистику
Как показывает опыт, на практике будет сделано по другому как минимум наполовину. Так что не принимайте сей пост за документацию.