<?php $table = new PhabricatorRepository(); $conn_w = $table->establishConnection('w'); $mirrors = queryfx_all( $conn_w, 'SELECT * FROM %T', 'repository_mirror'); foreach ($mirrors as $mirror) { $repository_phid = $mirror['repositoryPHID']; $uri = $mirror['remoteURI']; $already_exists = id(new PhabricatorRepositoryURI())->loadOneWhere( 'repositoryPHID = %s AND uri = %s', $repository_phid, $uri); if ($already_exists) { // Decline to migrate stuff that looks like it was already migrated. continue; } $new_uri = PhabricatorRepositoryURI::initializeNewURI() ->setIOType(PhabricatorRepositoryURI::IO_MIRROR) ->setRepositoryPHID($repository_phid) ->setURI($uri) ->setCredentialPHID($mirror['credentialPHID']) ->setDateCreated($mirror['dateCreated']) ->setDateModified($mirror['dateModified']) ->save(); echo tsprintf( "%s\n", pht( 'Migrated mirror "%s".', $uri)); }