[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/resources/sql/patches/ -> 20130716.archivememberlessprojects.php (source)

   1  <?php
   2  
   3  echo "Archiving projects with no members...\n";
   4  
   5  $table = new PhabricatorProject();
   6  $table->openTransaction();
   7  
   8  foreach (new LiskMigrationIterator($table) as $project) {
   9  
  10    $members = PhabricatorEdgeQuery::loadDestinationPHIDs(
  11      $project->getPHID(),
  12      PhabricatorEdgeConfig::TYPE_PROJ_MEMBER);
  13  
  14    if (count($members)) {
  15      echo sprintf(
  16        'Project "%s" has %d members; skipping.',
  17        $project->getName(),
  18        count($members)), "\n";
  19      continue;
  20    }
  21  
  22    if ($project->getStatus() == PhabricatorProjectStatus::STATUS_ARCHIVED) {
  23      echo sprintf(
  24        'Project "%s" already archived; skipping.',
  25        $project->getName()), "\n";
  26      continue;
  27    }
  28  
  29    echo sprintf('Archiving project "%s"...', $project->getName()), "\n";
  30    queryfx(
  31      $table->establishConnection('w'),
  32      'UPDATE %T SET status = %s WHERE id = %d',
  33      $table->getTableName(),
  34      PhabricatorProjectStatus::STATUS_ARCHIVED,
  35      $project->getID());
  36  }
  37  
  38  $table->saveTransaction();
  39  echo "\nDone.\n";


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1