adds queries support in documentsIterator
This commit is contained in:
parent
72b4c78c9f
commit
7e625ba653
|
@ -195,17 +195,23 @@ abstract class Migration
|
|||
* @return iterable<Document>
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function documentsIterator(string $collectionId): iterable
|
||||
public function documentsIterator(string $collectionId, $queries = []): iterable
|
||||
{
|
||||
$sum = 0;
|
||||
$nextDocument = null;
|
||||
$collectionCount = $this->projectDB->count($collectionId);
|
||||
$queries[] = Query::limit($this->limit);
|
||||
|
||||
do {
|
||||
$queries = [Query::limit($this->limit)];
|
||||
if ($nextDocument !== null) {
|
||||
$queries[] = Query::cursorAfter($nextDocument);
|
||||
$lastQuery = $queries[\count($queries) - 1];
|
||||
if ($lastQuery->getMethod() === 'cursorAfter') {
|
||||
$queries[\count($queries) - 1] = Query::cursorAfter($nextDocument);
|
||||
} else {
|
||||
$queries[] = Query::cursorAfter($nextDocument);
|
||||
}
|
||||
}
|
||||
|
||||
$documents = $this->projectDB->find($collectionId, $queries);
|
||||
$count = count($documents);
|
||||
$sum += $count;
|
||||
|
|
|
@ -648,11 +648,7 @@ class V19 extends Migration
|
|||
|
||||
private function migrateEnumAttributeSize(): void
|
||||
{
|
||||
foreach ($this->documentsIterator('attributes') as $attribute) {
|
||||
if ($attribute->getAttribute('format') !== 'enum' || $attribute->getAttribute('size') >= Database::LENGTH_KEY) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($this->documentsIterator('attributes', [Query::equal('format', ['enum']), Query::lessThan('size', Database::LENGTH_KEY)]) as $attribute) {
|
||||
$attribute->setAttribute('size', Database::LENGTH_KEY);
|
||||
$this->projectDB->updateDocument('attributes', $attribute->getId(), $attribute);
|
||||
$databaseInternalId = $attribute->getAttribute('databaseInternalId');
|
||||
|
|
Loading…
Reference in a new issue