From 24d8a0ee74fd6d6f26338c3efb8eb143eaed5ec0 Mon Sep 17 00:00:00 2001
From: Thomas Steur <tsteur@users.noreply.github.com>
Date: Tue, 19 Apr 2016 09:06:33 +1200
Subject: [PATCH] fix DB field piwik_log_visit.location_provider too small
 (#10003)

* fixes #9564 fix DB field piwik_log_visit.location_provider too small

* use new plugins updater API
---
 plugins/Provider/Provider.php         |  2 +-
 plugins/Provider/Updates/3.0.0-b1.php | 43 +++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 1 deletion(-)
 create mode 100644 plugins/Provider/Updates/3.0.0-b1.php

diff --git a/plugins/Provider/Provider.php b/plugins/Provider/Provider.php
index 1fb5385651..4aed41100c 100644
--- a/plugins/Provider/Provider.php
+++ b/plugins/Provider/Provider.php
@@ -30,7 +30,7 @@ class Provider extends \Piwik\Plugin
     public function install()
     {
         // add column hostname / hostname ext in the visit table
-        $query = "ALTER TABLE `" . Common::prefixTable('log_visit') . "` ADD `location_provider` VARCHAR( 100 ) NULL";
+        $query = "ALTER TABLE `" . Common::prefixTable('log_visit') . "` ADD `location_provider` VARCHAR(200) NULL";
 
         // if the column already exist do not throw error. Could be installed twice...
         try {
diff --git a/plugins/Provider/Updates/3.0.0-b1.php b/plugins/Provider/Updates/3.0.0-b1.php
new file mode 100644
index 0000000000..27cae67555
--- /dev/null
+++ b/plugins/Provider/Updates/3.0.0-b1.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+
+namespace Piwik\Plugins\Provider\Updates;
+
+use Piwik\Updater;
+use Piwik\Updates as PiwikUpdates;
+use Piwik\Updater\Migration;
+use Piwik\Updater\Migration\Factory as MigrationFactory;
+
+/**
+ * Update for version 3.0.0-b1.
+ */
+class Updates_3_0_0_b1 extends PiwikUpdates
+{
+    /**
+     * @var MigrationFactory
+     */
+    private $migration;
+
+    public function __construct(MigrationFactory $factory)
+    {
+        $this->migration = $factory;
+    }
+
+    public function getMigrations(Updater $updater)
+    {
+        return array(
+            $this->migration->db->changeColumnType('log_visit', 'location_provider', 'VARCHAR(200) NULL')
+        );
+    }
+
+    public function doUpdate(Updater $updater)
+    {
+        $updater->executeMigrations(__FILE__, $this->getMigrations($updater));
+    }
+}
-- 
GitLab