openTransaction(); foreach (new LiskMigrationIterator($table) as $document) { $updated = false; $id = $document->getID(); echo "Document {$id}: "; if (!$document->getTitle()) { $document_body = id(new LegalpadDocumentBody()) ->loadOneWhere('phid = %s', $document->getDocumentBodyPHID()); $title = $document_body->getTitle(); $document->setTitle($title); $updated = true; echo "Added title: $title\n"; } else { echo "-\n"; } if (!$document->getContributorCount() || !$document->getRecentContributorPHIDs()) { $updated = true; $type = PhabricatorEdgeConfig::TYPE_OBJECT_HAS_CONTRIBUTOR; $contributors = PhabricatorEdgeQuery::loadDestinationPHIDs( $document->getPHID(), $type); $document->setRecentContributorPHIDs(array_slice($contributors, 0, 3)); echo "Added recent contributor phids.\n"; $document->setContributorCount(count($contributors)); echo "Added contributor count.\n"; } if (!$updated) { echo "-\n"; continue; } $document->save(); } $table->saveTransaction(); echo "Done.\n";