public function execute() { $table = new PhabricatorRepositoryAuditRequest(); $conn_r = $table->establishConnection('r'); $joins = $this->buildJoinClause($conn_r); $where = $this->buildWhereClause($conn_r); $order = $this->buildOrderClause($conn_r); $limit = $this->buildLimitClause($conn_r); $data = queryfx_all($conn_r, 'SELECT req.* FROM %T req %Q %Q %Q %Q', $table->getTableName(), $joins, $where, $order, $limit); $audits = $table->loadAllFromArray($data); if ($this->needCommits || $this->needCommitData) { $phids = mpull($audits, 'getCommitPHID', 'getCommitPHID'); if ($phids) { $cquery = new PhabricatorAuditCommitQuery(); $cquery->needCommitData($this->needCommitData); $cquery->withCommitPHIDs(array_keys($phids)); $commits = $cquery->execute(); } else { $commits = array(); } $this->commits = $commits; } return $audits; }
<?php $table = new PhabricatorRepositoryAuditRequest(); $conn_w = $table->establishConnection('w'); echo "Migrating Audit subscribers to subscriptions...\n"; foreach (new LiskMigrationIterator($table) as $request) { $id = $request->getID(); echo "Migrating auditor {$id}...\n"; if ($request->getAuditStatus() != 'cc') { // This isn't a "subscriber", so skip it. continue; } queryfx($conn_w, 'INSERT IGNORE INTO %T (src, type, dst) VALUES (%s, %d, %s)', PhabricatorEdgeConfig::TABLE_NAME_EDGE, $request->getCommitPHID(), PhabricatorEdgeConfig::TYPE_OBJECT_HAS_SUBSCRIBER, $request->getAuditorPHID()); // Wipe the row. $request->delete(); } echo "Done.\n";