diff --git a/lib/Migration/Version010000001Date20250727094721.php b/lib/Migration/Version010000001Date20250727094721.php index 6da78a7bf..9481cc979 100644 --- a/lib/Migration/Version010000001Date20250727094721.php +++ b/lib/Migration/Version010000001Date20250727094721.php @@ -10,10 +10,12 @@ use Closure; use Doctrine\DBAL\Schema\SchemaException; use OCP\DB\ISchemaWrapper; +use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\DB\Types; use OCP\IDBConnection; use OCP\Migration\IOutput; use OCP\Migration\SimpleMigrationStep; +use PDO; final class Version010000001Date20250727094721 extends SimpleMigrationStep { @@ -69,10 +71,16 @@ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $query = $this->db->getQueryBuilder(); $query->update('recognize_face_detections') ->set('face_vector', 'vector') - ->where($query->expr()->in('id', $query->createFunction('(' . $select->getSQL() .')'))); + ->where($query->expr()->in('id', $query->createParameter('ids'))); do { - $updatedRows = $query->executeStatement(); + $result = $select->executeQuery(); + $ids = $result->fetchAll(PDO::FETCH_COLUMN); + $result->closeCursor(); + if (empty($ids)) { + break; + } + $updatedRows = $query->setParameter('ids', $ids, IQueryBuilder::PARAM_INT_ARRAY)->executeStatement(); } while ($updatedRows > 0); } }