1
0
Fork 0
mirror of synced 2024-07-03 13:41:01 +12:00

adds queries support in documentsIterator

This commit is contained in:
prateek banga 2023-11-21 11:48:27 +05:30
parent 72b4c78c9f
commit 7e625ba653
2 changed files with 10 additions and 8 deletions

View file

@ -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;

View file

@ -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');