Я решил проблему!
Да, это займет много времени, да, это приведет к увеличению нагрузки на сервер, но это просто необходимо сделать. Я использую журнал ошибок для проверки ошибок во время миграции.
Как?
1) Я добавил ignore_user_abort(true);
и set_time_limit(0);
, чтобы скрипты продолжали работать на сервере (останавливается, когда цикл while () завершен).
2) В цикле while () я добавил код, позволяющий остановить сценарий миграции, создав небольшой текстовый файл с именем stop.txt:
if(file_exists(dirname(__FILE__)."/stop.txt")) {
error_log('Migration Stopped By User ('.date("d-m-Y H:i:s",time()).')');
break;
}
3) Ошибки миграции и дубликаты заносятся в мой журнал ошибок:
error_log('Migration Fail => UID: '.$uid.' - '.$email.' ('.date("d-m-Y H:i:s",time()).')');
4) После завершения миграции (используя mail()
) я получаю электронное письмо с результатом миграции, поэтому мне не нужно проверять это вручную.
Возможно, это не лучшее решение, но с ним можно работать!