Changeset View
Changeset View
Standalone View
Standalone View
resources/sql/patches/20130716.archivememberlessprojects.php
| <?php | <?php | ||||
| echo "Archiving projects with no members...\n"; | echo pht('Archiving projects with no members...')."\n"; | ||||
| $table = new PhabricatorProject(); | $table = new PhabricatorProject(); | ||||
| $table->openTransaction(); | $table->openTransaction(); | ||||
| foreach (new LiskMigrationIterator($table) as $project) { | foreach (new LiskMigrationIterator($table) as $project) { | ||||
| $members = PhabricatorEdgeQuery::loadDestinationPHIDs( | $members = PhabricatorEdgeQuery::loadDestinationPHIDs( | ||||
| $project->getPHID(), | $project->getPHID(), | ||||
| PhabricatorProjectProjectHasMemberEdgeType::EDGECONST); | PhabricatorProjectProjectHasMemberEdgeType::EDGECONST); | ||||
| if (count($members)) { | if (count($members)) { | ||||
| echo sprintf( | echo pht( | ||||
| 'Project "%s" has %d members; skipping.', | 'Project "%s" has %d members; skipping.', | ||||
| $project->getName(), | $project->getName(), | ||||
| count($members)), "\n"; | count($members)), "\n"; | ||||
| continue; | continue; | ||||
| } | } | ||||
| if ($project->getStatus() == PhabricatorProjectStatus::STATUS_ARCHIVED) { | if ($project->getStatus() == PhabricatorProjectStatus::STATUS_ARCHIVED) { | ||||
| echo sprintf( | echo pht( | ||||
| 'Project "%s" already archived; skipping.', | 'Project "%s" already archived; skipping.', | ||||
| $project->getName()), "\n"; | $project->getName()), "\n"; | ||||
| continue; | continue; | ||||
| } | } | ||||
| echo sprintf('Archiving project "%s"...', $project->getName()), "\n"; | echo pht('Archiving project "%s"...', $project->getName())."\n"; | ||||
| queryfx( | queryfx( | ||||
| $table->establishConnection('w'), | $table->establishConnection('w'), | ||||
| 'UPDATE %T SET status = %s WHERE id = %d', | 'UPDATE %T SET status = %s WHERE id = %d', | ||||
| $table->getTableName(), | $table->getTableName(), | ||||
| PhabricatorProjectStatus::STATUS_ARCHIVED, | PhabricatorProjectStatus::STATUS_ARCHIVED, | ||||
| $project->getID()); | $project->getID()); | ||||
| } | } | ||||
| $table->saveTransaction(); | $table->saveTransaction(); | ||||
| echo "\nDone.\n"; | echo "\n".pht('Done.')."\n"; | ||||