<?php $table = new HeraldCondition(); $conn_w = $table->establishConnection('w'); echo "Migrating Herald conditions of type Herald rule from IDs to PHIDs...\n"; foreach (new LiskMigrationIterator($table) as $condition) { if ($condition->getFieldName() != HeraldAdapter::FIELD_RULE) { continue; } $value = $condition->getValue(); if (!is_numeric($value)) { continue; } $id = $condition->getID(); echo "Updating condition {$id}...\n"; $rule = id(new HeraldRuleQuery()) ->setViewer(PhabricatorUser::getOmnipotentUser()) ->withIDs(array($value)) ->executeOne(); queryfx( $conn_w, 'UPDATE %T SET value = %s WHERE id = %d', $table->getTableName(), json_encode($rule->getPHID()), $id); } echo "Done.\n";