Beispiel #1
0
 /**
  * Find the internal and external target tables (tmp versions)
  *
  * @param $intPid
  * @return array
  */
 public static function findTargetTables($intPid)
 {
     $objJob = JobModel::findByPk($intPid);
     $arrTargets = Helper::arrayOnly($objJob->targetTables);
     $objSteps = StepModel::findBy(array('tl_convertx_step.pid=?', 'tl_convertx_step.published=?', 'tl_convertx_step.action=?'), array($intPid, 1, 'converter'));
     if (!$objSteps) {
         return $arrTargets;
     }
     while ($objSteps->next()) {
         $objConverter = ConverterModel::findByPk($objSteps->converter);
         switch ($objConverter->targetType) {
             case 'InternalTable':
                 // table names for internal data
                 $arrTargets[] = 'cvx_' . $objConverter->targetTable;
                 break;
             default:
                 // tmp tables for external data get a name based on the converter id
                 $arrTargets[] = 'cvx_' . $objConverter->id;
                 break;
         }
     }
     return array_unique($arrTargets);
 }
Beispiel #2
0
 /**
  * Finalize the table
  *
  * @param $strTarget
  * @param $objRun
  * @return bool
  */
 public static function finalize($strTarget, $objRun)
 {
     $objConverter = ConverterModel::findOneBy('targetTable', $strTarget);
     $objJob = JobModel::findByPk($objRun->pid);
     // maybe there are tables not bound on a converter
     if (!$objConverter) {
         // do not finalize on simulation
         if ($objRun->simulation) {
             // drop tmp table
             $Database = Database::getInstance();
             $Database->prepare("DROP TABLE IF EXISTS cvx_" . $strTarget)->execute();
             return true;
         }
         // -----------------------------------------
         // replace the original table
         return self::replaceByWorkingTable('cvx_' . $strTarget, $objRun->begin, $objJob->keepVersions, $objRun->simulation);
     }
     // do not finalize on simulation
     if ($objRun->simulation) {
         // drop tmp table
         $Database = Database::getInstance();
         $Database->prepare("DROP TABLE IF EXISTS cvx_" . $objConverter->targetTable)->execute();
         return true;
     }
     // -----------------------------------------
     // replace the original table
     return self::replaceByWorkingTable('cvx_' . $objConverter->targetTable, $objRun->begin, $objJob->keepVersions, $objRun->sim);
 }
Beispiel #3
0
 /**
  * Delete older logs, keep defined versions
  *
  * @param $objRun
  */
 public static function deleteLogs($objRun)
 {
     // get job data
     $objJob = JobModel::findByPk($objRun->pid);
     $objRuns = RunModel::findBy('pid', $objRun->pid, array('order' => 'end DESC', 'offset' => $objJob->keepLogs));
     // delete older logs
     if ($objRuns) {
         Database::getInstance()->prepare("DELETE FROM tl_convertx_run WHERE id IN (" . implode(',', $objRuns->fetchEach('id')) . ")")->execute();
         Database::getInstance()->prepare("DELETE FROM tl_convertx_log WHERE pid IN (" . implode(',', $objRuns->fetchEach('id')) . ")")->execute();
     }
 }