Changeset View
Changeset View
Standalone View
Standalone View
resources/sql/patches/migrate-project-edges.php
| <?php | <?php | ||||
| echo "Migrating project members to edges...\n"; | echo pht('Migrating project members to edges...')."\n"; | ||||
| $table = new PhabricatorProject(); | $table = new PhabricatorProject(); | ||||
| $table->establishConnection('w'); | $table->establishConnection('w'); | ||||
| foreach (new LiskMigrationIterator($table) as $proj) { | foreach (new LiskMigrationIterator($table) as $proj) { | ||||
| $id = $proj->getID(); | $id = $proj->getID(); | ||||
| echo "Project {$id}: "; | echo pht('Project %d: ', $id); | ||||
| $members = queryfx_all( | $members = queryfx_all( | ||||
| $proj->establishConnection('w'), | $proj->establishConnection('w'), | ||||
| 'SELECT userPHID FROM %T WHERE projectPHID = %s', | 'SELECT userPHID FROM %T WHERE projectPHID = %s', | ||||
| 'project_affiliation', | 'project_affiliation', | ||||
| $proj->getPHID()); | $proj->getPHID()); | ||||
| if (!$members) { | if (!$members) { | ||||
| echo "-\n"; | echo "-\n"; | ||||
| continue; | continue; | ||||
| } | } | ||||
| $members = ipull($members, 'userPHID'); | $members = ipull($members, 'userPHID'); | ||||
| $editor = new PhabricatorEdgeEditor(); | $editor = new PhabricatorEdgeEditor(); | ||||
| foreach ($members as $user_phid) { | foreach ($members as $user_phid) { | ||||
| $editor->addEdge( | $editor->addEdge( | ||||
| $proj->getPHID(), | $proj->getPHID(), | ||||
| PhabricatorProjectProjectHasMemberEdgeType::EDGECONST, | PhabricatorProjectProjectHasMemberEdgeType::EDGECONST, | ||||
| $user_phid); | $user_phid); | ||||
| } | } | ||||
| $editor->save(); | $editor->save(); | ||||
| echo "OKAY\n"; | echo pht('OKAY')."\n"; | ||||
| } | } | ||||
| echo "Done.\n"; | echo pht('Done.')."\n"; | ||||