Skip to content
This repository has been archived by the owner on Sep 10, 2021. It is now read-only.

Commit

Permalink
Migrate tracker scalar params in 1.2.2 upgrade
Browse files Browse the repository at this point in the history
  • Loading branch information
mgrauer committed Oct 5, 2015
1 parent 7dc34cd commit b47ea69
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions modules/tracker/database/upgrade/1.2.2.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ public function mysql()
PRIMARY KEY (`param_id`),
KEY (`param_name`)
) DEFAULT CHARSET=utf8;");
$this->migrateScalarParams();
$this->db->query('ALTER TABLE `tracker_scalar` DROP `params`');
}

/** Upgrade a PostgreSQL database. */
Expand All @@ -50,5 +52,37 @@ public function pgsql()
numeric_value double precision);"
);
$this->db->query('CREATE INDEX tracker_param_param_name_idx ON tracker_param (param_name);');
$this->migrateScalarParams();
$this->db->query('ALTER TABLE tracker_scalar DROP COLUMN params;');
}

/** Migrate tracker_scalar params to tracker_param. */
private function migrateScalarParams()
{
$count = 0;
$logger = Zend_Registry::get('logger');
$logger->debug('migrateScalarParams');
/** @var Tracker_ParamModel $paramModel */
$paramModel = MidasLoader::loadModel('Param', $this->moduleName);
$uresult = $this->db->query('SELECT scalar_id, params from tracker_scalar where params is not null');
if ($uresult) {
while ($row = $uresult->fetch(PDO::FETCH_ASSOC)) {
if ($count % 1000 == 0) {
$logger->debug('Count '.$count);
}
++$count;
$scalarId = $row['scalar_id'];
$params = $row['params'];
$params = json_decode($params, true);
foreach ($params as $paramName => $paramValue) {
/** @var Tracker_ParamDao $paramDao */
$paramDao = MidasLoader::newDao('ParamDao', $this->moduleName);
$paramDao->setScalarId($scalarId);
$paramDao->setParamName($paramName);
$paramDao->setParamValue($paramValue);
$paramModel->save($paramDao);
}
}
}
}
}

0 comments on commit b47ea69

Please sign in to comment.