Probleme beim Update von Matomo von 3.5.1 zu 4.2.0

Hallo Zusammen,

Ich habe versucht unsere Matomo-Version von 3.5.1 auf 4.2.0 anzuheben.
Leider klappt etwas beim Update der Datenbank nicht und hält mich davon ab das Update abzuschließen.

Anbei der Fehler:

Fehler während Plugin-Aktualisierungen:

/var/www/matomo/core/Columns/Updater.php: Error trying to execute the migration ‘ALTER TABLE piwik_log_visit MODIFY COLUMN visitor_count_visits INT(11) UNSIGNED NOT NULL DEFAULT 0, MODIFY COLUMN visit_total_interactions MEDIUMINT UNSIGNED DEFAULT 0, MODIFY COLUMN referer_name VARCHAR(255) NULL, MODIFY COLUMN referer_url VARCHAR(1500) NULL, MODIFY COLUMN config_browser_name VARCHAR(40) NULL, ADD COLUMN config_client_type TINYINT( 1 ) NULL DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL;’. The error was: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘location_region’ in 'piwik_log_visit’
/var/www/matomo/core/Columns/Updater.php: Error trying to execute the migration ‘ALTER TABLE piwik_log_visit MODIFY COLUMN visitor_count_visits INT(11) UNSIGNED NOT NULL DEFAULT 0, MODIFY COLUMN visit_total_interactions MEDIUMINT UNSIGNED DEFAULT 0, MODIFY COLUMN referer_name VARCHAR(255) NULL, MODIFY COLUMN referer_url VARCHAR(1500) NULL, MODIFY COLUMN config_browser_name VARCHAR(40) NULL, ADD COLUMN config_client_type TINYINT( 1 ) NULL DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL;’. The error was: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘location_region’ in 'piwik_log_visit’
/var/www/matomo/core/Columns/Updater.php: Error trying to execute the migration ‘ALTER TABLE piwik_log_visit MODIFY COLUMN visitor_count_visits INT(11) UNSIGNED NOT NULL DEFAULT 0, MODIFY COLUMN visit_total_interactions MEDIUMINT UNSIGNED DEFAULT 0, MODIFY COLUMN referer_name VARCHAR(255) NULL, MODIFY COLUMN referer_url VARCHAR(1500) NULL, MODIFY COLUMN config_browser_name VARCHAR(40) NULL, ADD COLUMN config_client_type TINYINT( 1 ) NULL DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL;’. The error was: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘location_region’ in 'piwik_log_visit’
/var/www/matomo/core/Columns/Updater.php: Error trying to execute the migration ‘ALTER TABLE piwik_log_visit MODIFY COLUMN visitor_count_visits INT(11) UNSIGNED NOT NULL DEFAULT 0, MODIFY COLUMN visit_total_interactions MEDIUMINT UNSIGNED DEFAULT 0, MODIFY COLUMN referer_name VARCHAR(255) NULL, MODIFY COLUMN referer_url VARCHAR(1500) NULL, MODIFY COLUMN config_browser_name VARCHAR(40) NULL, ADD COLUMN config_client_type TINYINT( 1 ) NULL DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL;’. The error was: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘location_region’ in 'piwik_log_visit’
/var/www/matomo/core/Columns/Updater.php: Error trying to execute the migration ‘ALTER TABLE piwik_log_visit MODIFY COLUMN visitor_count_visits INT(11) UNSIGNED NOT NULL DEFAULT 0, MODIFY COLUMN visit_total_interactions MEDIUMINT UNSIGNED DEFAULT 0, MODIFY COLUMN referer_name VARCHAR(255) NULL, MODIFY COLUMN referer_url VARCHAR(1500) NULL, MODIFY COLUMN config_browser_name VARCHAR(40) NULL, ADD COLUMN config_client_type TINYINT( 1 ) NULL DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL;’. The error was: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘location_region’ in 'piwik_log_visit’
/var/www/matomo/core/Columns/Updater.php: Error trying to execute the migration ‘ALTER TABLE piwik_log_visit MODIFY COLUMN visitor_count_visits INT(11) UNSIGNED NOT NULL DEFAULT 0, MODIFY COLUMN visit_total_interactions MEDIUMINT UNSIGNED DEFAULT 0, MODIFY COLUMN referer_name VARCHAR(255) NULL, MODIFY COLUMN referer_url VARCHAR(1500) NULL, MODIFY COLUMN config_browser_name VARCHAR(40) NULL, ADD COLUMN config_client_type TINYINT( 1 ) NULL DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL;’. The error was: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘location_region’ in 'piwik_log_visit’
/var/www/matomo/core/Columns/Updater.php: Error trying to execute the migration ‘ALTER TABLE piwik_log_visit MODIFY COLUMN visitor_count_visits INT(11) UNSIGNED NOT NULL DEFAULT 0, MODIFY COLUMN visit_total_interactions MEDIUMINT UNSIGNED DEFAULT 0, MODIFY COLUMN referer_name VARCHAR(255) NULL, MODIFY COLUMN referer_url VARCHAR(1500) NULL, MODIFY COLUMN config_browser_name VARCHAR(40) NULL, ADD COLUMN config_client_type TINYINT( 1 ) NULL DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL;’. The error was: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘location_region’ in 'piwik_log_visit’

Könnt ihr mir da weiterhelfen? Muss ich erst auf eine Zwischenversion updaten oder wie kann ich diesen Fehler beheben.

Vielen Dank und viele Grüße
Kenny

Hallo,

So wie es aussieht, fehlen bei dir Spalten die schon vor langer Zeit in einem Update hinzugefügt werden sollten. Mit dem SQL-Query solltest du sie hinzufügen können, dann sollte auch das Update funktionieren.

Hallo Lukas,

Vielen Dank für deine Antwort.
Leider hilft mir das nicht weiter. Wenn ich versuche die zwei Spalten hinzuzufügen bekomme ich ein Duplicate Column Name. Also die Spalten sind da.
Hast du noch eine andere Idee?

Viele Grüße
Kenny

Dann würde ich das Update nochmal probieren.

Wenn immer noch

Column not found: 1054 Unknown column ‘location_region’ in 'piwik_log_visit’

ausgegeben wird, würde ich sicherheitshalber nachschauen, dass du auf dieselben Tabellen schaust (also zum Beispiel derselbe piwik_ prefix

Hi Lukas,

Also das Update schlägt immernoch fehl.
Ich bin auch auf der richtigen Datenbank. (Habe einen komplett neuen Server aufgesetzt und dort nur die Datenbank des anderen laufenden Systems eingespielt.

Liegt es eventuell an der großen Lücke zwischen den Updates? Kann man eventuell ein Update da zwischen einspielen was die Tabellen richtig setzt?

Die Spalte die er in der Fehlermeldung anmeckert ist vorhanden:
location_region | char(2) | YES | | NULL | |

Hast du eventuell noch einen anderen Tipp?`

Vielen Dank und viele Grüße
Kenny

Hallo,

Was passiert, wenn du die MySQL query aus der Fehlermeldung ALTER TABLE piwik_log_visit MODIFY COLUMN ... direkt in der Datenbank aufrufst. Denn diese ist es ja, die sagt, dass die Spalte nicht existiert. Wenn der Fehler auch in der Datenbank auftritt, dann weißt du, dass das Problem unabhängig vom Matomo-Code ist.

Schon älter, doch kommt weit oben bei Google, deshalb hier noch die Lösung:

Die von Matomo vorgesehenen SQL-Befehle enthalten eine Doppelung: MODIFY COLUMN location_region char(3) DEFAULT NULL, MODIFY COLUMN location_region char(3) DEFAULT NULL

Einfach einen löschen, schon klappt es.