Skip to content
Extraits de code Groupes Projets
Valider 2a9144c6 rédigé par Thomas Steur's avatar Thomas Steur
Parcourir les fichiers

just noticed I broke the installer when I was trying to fix the updater in...

just noticed I broke the installer when I was trying to fix the updater in c01d57bc, this might work... basically the idea was ok but we should check for this only if the column actually already exists. If the column does not exist yet we need to make sure it will be installed
parent 6ae5b6c6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -163,27 +163,52 @@ class Updater extends \Piwik\Updates ...@@ -163,27 +163,52 @@ class Updater extends \Piwik\Updates
$versions = array(); $versions = array();
$visitColumns = DbHelper::getTableColumns(Common::prefixTable('log_visit'));
$actionColumns = DbHelper::getTableColumns(Common::prefixTable('log_link_visit_action'));
$conversionColumns = DbHelper::getTableColumns(Common::prefixTable('log_conversion'));
foreach (VisitDimension::getAllDimensions() as $dimension) { foreach (VisitDimension::getAllDimensions() as $dimension) {
$columnName = $dimension->getColumnName(); $versions = self::mixinVersions($dimension, 'log_visit.', $visitColumns, $versions);
if ($columnName && $dimension->hasColumnType()) {
$versions['log_visit.' . $columnName] = $dimension->getVersion();
}
} }
foreach (ActionDimension::getAllDimensions() as $dimension) { foreach (ActionDimension::getAllDimensions() as $dimension) {
$columnName = $dimension->getColumnName(); $versions = self::mixinVersions($dimension, 'log_link_visit_action.', $actionColumns, $versions);
if ($columnName && $dimension->hasColumnType()) {
$versions['log_link_visit_action.' . $columnName] = $dimension->getVersion();
}
} }
foreach (ConversionDimension::getAllDimensions() as $dimension) { foreach (ConversionDimension::getAllDimensions() as $dimension) {
$columnName = $dimension->getColumnName(); $versions = self::mixinVersions($dimension, 'log_conversion.', $conversionColumns, $versions);
if ($columnName && $dimension->hasColumnType()) { }
$versions['log_conversion.' . $columnName] = $dimension->getVersion();
} return $versions;
}
/**
* @param ActionDimension|ConversionDimension|VisitDimension $dimension
* @param string $componentPrefix
* @param array $columns
* @param array $versions
* @return array The modified versions array
*/
private static function mixinVersions($dimension, $componentPrefix, $columns, $versions)
{
$columnName = $dimension->getColumnName();
if (!$columnName || !$dimension->hasColumnType()) {
return $versions;
} }
$component = $componentPrefix . $columnName;
$version = $dimension->getVersion();
if (in_array($columnName, $columns)
&& false === PiwikUpdater::getCurrentRecordedComponentVersion($component)
&& self::wasDimensionMovedFromCoreToPlugin($component, $version)) {
PiwikUpdater::recordComponentSuccessfullyUpdated($component, $version);
return $versions;
}
$versions[$component] = $version;
return $versions; return $versions;
} }
......
...@@ -67,7 +67,7 @@ class Updater ...@@ -67,7 +67,7 @@ class Updater
* @return false|string * @return false|string
* @throws \Exception * @throws \Exception
*/ */
private static function getCurrentRecordedComponentVersion($name) public static function getCurrentRecordedComponentVersion($name)
{ {
try { try {
$currentVersion = Option::get(self::getNameInOptionTable($name)); $currentVersion = Option::get(self::getNameInOptionTable($name));
...@@ -303,11 +303,6 @@ class Updater ...@@ -303,11 +303,6 @@ class Updater
$currentVersion = self::getCurrentRecordedComponentVersion($name); $currentVersion = self::getCurrentRecordedComponentVersion($name);
if (ColumnUpdater::isDimensionComponent($name)) { if (ColumnUpdater::isDimensionComponent($name)) {
if ($currentVersion === false && ColumnUpdater::wasDimensionMovedFromCoreToPlugin($name, $version)) {
self::recordComponentSuccessfullyUpdated($name, $version);
continue;
}
$isComponentOutdated = $currentVersion !== $version; $isComponentOutdated = $currentVersion !== $version;
} else { } else {
// note: when versionCompare == 1, the version in the DB is newer, we choose to ignore // note: when versionCompare == 1, the version in the DB is newer, we choose to ignore
......
...@@ -131,14 +131,14 @@ ...@@ -131,14 +131,14 @@
<row> <row>
<type>dimension</type> <type>dimension</type>
<category>Visit</category> <category>Visit</category>
<name>ExamplePlugin_DimensionName</name> <name>Example Dimension</name>
<segment>myConversionSegmentName</segment> <segment>myConversionSegmentName</segment>
<acceptedValues>Here you should explain which values are accepted/useful: Any number, for instance 1, 2, 3 , 99</acceptedValues> <acceptedValues>Here you should explain which values are accepted/useful: Any number, for instance 1, 2, 3 , 99</acceptedValues>
</row> </row>
<row> <row>
<type>dimension</type> <type>dimension</type>
<category>Visit</category> <category>Visit</category>
<name>ExamplePlugin_DimensionName</name> <name>Example Dimension</name>
<segment>achievementPoints</segment> <segment>achievementPoints</segment>
<acceptedValues>Here you should explain which values are accepted/useful: Any number, for instance 1, 2, 3 , 99</acceptedValues> <acceptedValues>Here you should explain which values are accepted/useful: Any number, for instance 1, 2, 3 , 99</acceptedValues>
</row> </row>
...@@ -395,7 +395,7 @@ ...@@ -395,7 +395,7 @@
<row> <row>
<type>dimension</type> <type>dimension</type>
<category>Actions</category> <category>Actions</category>
<name>ExamplePlugin_DimensionName</name> <name>Example Dimension</name>
<segment>keywords</segment> <segment>keywords</segment>
<acceptedValues>Here you should explain which values are accepted/useful: Any word, for instance MyKeyword1, MyKeyword2</acceptedValues> <acceptedValues>Here you should explain which values are accepted/useful: Any word, for instance MyKeyword1, MyKeyword2</acceptedValues>
</row> </row>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter