/** * Processes the records. * * @param \Cake\ORM\Table $table * @param int $chunkCount * @param int $chunkSize * @return void */ protected function _process(Table $table, $chunkCount, $chunkSize) { $query = $table->find(); if ($table->hasFinder('purifier')) { $query->find('purifier'); } $fields = explode(',', $this->param('fields')); $fields[] = $table->primaryKey(); $results = $query->select($fields)->offset($chunkCount)->limit($chunkSize)->orderDesc($table->aliasField($table->primaryKey()))->all(); if (empty($results)) { return; } foreach ($results as $result) { try { $table->save($result); $chunkCount++; } catch (\Exception $e) { $this->error($e->getMessage()); } } }