<?php echo "Moving Slowvote comments to transactions...\n"; $viewer = PhabricatorUser::getOmnipotentUser(); $table_xaction = new PhabricatorSlowvoteTransaction(); $table_comment = new PhabricatorSlowvoteTransactionComment(); $conn_w = $table_xaction->establishConnection('w'); $comments = new LiskRawMigrationIterator($conn_w, 'slowvote_comment'); $conn_w->openTransaction(); foreach ($comments as $comment) { $id = $comment['id']; $poll_id = $comment['pollID']; $author_phid = $comment['authorPHID']; $text = $comment['commentText']; $date_created = $comment['dateCreated']; $date_modified = $comment['dateModified']; echo "Migrating comment {$id}.\n"; $poll = id(new PhabricatorSlowvoteQuery()) ->setViewer($viewer) ->withIDs(array($poll_id)) ->executeOne(); if (!$poll) { echo "No poll.\n"; continue; } $user = id(new PhabricatorPeopleQuery()) ->setViewer($viewer) ->withPHIDs(array($author_phid)) ->executeOne(); if (!$user) { echo "No user.\n"; continue; } $comment_phid = PhabricatorPHID::generateNewPHID( PhabricatorPHIDConstants::PHID_TYPE_XCMT); $xaction_phid = PhabricatorPHID::generateNewPHID( PhabricatorApplicationTransactionPHIDTypeTransaction::TYPECONST, PhabricatorSlowvotePHIDTypePoll::TYPECONST); $source = PhabricatorContentSource::newForSource( PhabricatorContentSource::SOURCE_LEGACY, array())->serialize(); queryfx( $conn_w, 'INSERT INTO %T (phid, transactionPHID, authorPHID, viewPolicy, editPolicy, commentVersion, content, contentSource, isDeleted, dateCreated, dateModified) VALUES (%s, %s, %s, %s, %s, %d, %s, %s, %d, %d, %d)', $table_comment->getTableName(), $comment_phid, $xaction_phid, $user->getPHID(), PhabricatorPolicies::POLICY_PUBLIC, $user->getPHID(), 1, $text, $source, 0, $date_created, $date_modified); queryfx( $conn_w, 'INSERT INTO %T (phid, authorPHID, objectPHID, viewPolicy, editPolicy, commentPHID, commentVersion, transactionType, oldValue, newValue, contentSource, metadata, dateCreated, dateModified) VALUES (%s, %s, %s, %s, %s, %s, %d, %s, %s, %s, %s, %s, %d, %d)', $table_xaction->getTableName(), $xaction_phid, $user->getPHID(), $poll->getPHID(), PhabricatorPolicies::POLICY_PUBLIC, $user->getPHID(), $comment_phid, 1, PhabricatorTransactions::TYPE_COMMENT, null, null, $source, '{}', $date_created, $date_modified); } $conn_w->saveTransaction(); echo "Done.\n";