protected function loadPage() { $table = new HarbormasterBuildStep(); $conn_r = $table->establishConnection('r'); $data = queryfx_all($conn_r, 'SELECT * FROM %T %Q %Q %Q', $table->getTableName(), $this->buildWhereClause($conn_r), $this->buildOrderClause($conn_r), $this->buildLimitClause($conn_r)); return $table->loadAllFromArray($data); }
<?php $plan_table = new HarbormasterBuildPlan(); $step_table = new HarbormasterBuildStep(); $conn_w = $plan_table->establishConnection('w'); foreach (new LiskMigrationIterator($plan_table) as $plan) { echo pht("Migrating build plan %d: %s...\n", $plan->getID(), $plan->getName()); // Load all build steps in order using the step sequence. $steps = queryfx_all($conn_w, 'SELECT id FROM %T WHERE buildPlanPHID = %s ORDER BY sequence ASC;', $step_table->getTableName(), $plan->getPHID()); $previous_step = null; foreach ($steps as $step) { $id = $step['id']; $loaded_step = id(new HarbormasterBuildStep())->load($id); $depends_on = $loaded_step->getDetail('dependsOn'); if ($depends_on !== null) { // This plan already contains steps with depends_on set, so // we skip since there's nothing to migrate. break; } if ($previous_step === null) { $depends_on = array(); } else { $depends_on = array($previous_step->getPHID()); } $loaded_step->setDetail('dependsOn', $depends_on); queryfx($conn_w, 'UPDATE %T SET details = %s WHERE id = %d', $step_table->getTableName(), json_encode($loaded_step->getDetails()), $loaded_step->getID()); $previous_step = $loaded_step; echo pht(" Migrated build step %d.\n", $loaded_step->getID()); } }