мета-данные страницы
Удаление фото из базы данных
Планирование
Первым делом, необходимо обращение, в котором мы будем согласовывать с клиентом нюансы. Например:
- Когда проводить работы. Удаление может занять много время, нужно согласовать с клиентом время работ, чтоб не мешать их работе;
- Есть ли возможность занять начало рабочего дня, если вдруг удаление не успевает пройти;
- Дату, до которой очищаем фото;
При планировании надо проверить:
- Наличие свободного места для:
- бэкапа базы с фото;
- оптимизации(это минимум размер БД*3). Понадобится делать backup/restore, для этого нужно будет место;
- Наличие и правильность процедуры для удаления фото;
- Отсутствие у клиента облачного хранилища или использования для хранения фотографий локального хранилища (Химчистка/Сервис/Другие сервисы/Настройка хранилища данных - на закладке «Локальное хранилище» не активен чекбокс «Включить хранение фото в локальном хранилище», на закладке «Облачное хранилище» не активен чекбокс «Активировано»). При наличии облачного или использовании для хранения фотографий локального хранилища удаление по сценарию, указанному в этой инструкции, не производить.
Удаление старых фото
1. Сделать копию БД. Делается для того, чтоб при возникновении какого-то сбоя или если клиент неожиданно передумает, у нас была БД от куба мы могли бы восстановить данные или полностью заменить этой базой
2. Проверить наличие в БД процедуры SP_DEL_OLD_PHOTOS_DT. Для этого открываем IBExpert, в в поиск копируем название этой процедуры и убеждаемся в ее наличие. Данная процедура необходима для удаления старых фотографий за указанный период
3. Убедиться что код в процедуре соответствует скрипту, см. ниже. У клиента может находится старая версия этой процедуры, а выполнять нужно только в актуальном состоянии
Если код не соответствует, в IBExpert нажимаем Ctrl+F12, копируем текст из скрипта в поле и нажимаем F9.
4. Отключить триггер DOC_ORDER_SERV_PHOTOS_AD (если триггера нет, пропускаем этот пункт). Для этого убираем галочку с «IsActive», потом жмем «Compile». Триггет мы отключаем для того, чтоб удаленные данные не попали в лог репликации и это удаление не уходило по репликации (если не пунктах нужно будет уменьшить место, то нужно будет делать новую БД на основе центральной)
5. Отключить остальные триггеры на удаление по таблице DOC_ORDER_SERV_PHOTOS (как отключить см. п.4)
6. Убедиться в наличие индекса DOR_IDX_DT_OUT_FACT в таблице DOCS_ORDER. Без этого индекса скрипт по удалению фото может очень долго работать.
Если индекса нет, провести скрипт:
7. В IBExpert нажимаем Ctrl+F12, вставить скрипт. За место параметров :DATE_FIRST, :DATE_LAST период за который нужно удалить фото и выполнить его нажав F9.
Время удаления зависит от размера БД, периода удаления фото и мощности ПК.
8. Включить триггер DOC_ORDER_SERV_PHOTOS_AD (если триггера нет, пропускаем этот пункт). Для этого ставим галочку с «IsActive», потом жмем «Compile». Возвращаем триггер к прежнему состоянию, чтоб он все действия фиксировал в логе репликации
9. Включить остальные триггеры на удаление (которые были выключены в п.4)
10. Сделать backup/restore. Без этой операции размер БД не уменьшится, только после restore мы увидим каким размером БД стала после удаления старых фото.