Da klicke ich doch gestern das Upgrade meiner Piwigo Bildergalerie von 2.8 auf 2.9 und es scheint sauber gelaufen zu sein. Leider findet sich ab dem Moment auf der Seite die folgende Fehlermeldung:

Warning:  [mysql error 1054] Unknown column 'last_visit' in 'field list'

UPDATE piwigo_user_infos
  SET last_visit = NOW(),
      lastmodified = lastmodified
  WHERE user_id = 1
 in /pfad/bilder.kernel-error.de/include/dblayer/functions_mysqli.inc.php on line 845

Was ist da wohl passiert? Im nginx Logfile findet sich dabei folgendes:

UPDATE piwigo_user_infos
  SET last_visit = NOW(),
      lastmodified = lastmodified
  WHERE user_id = 2
 in /pfad/bilder.kernel-error.de/include/dblayer/functions_mysqli.inc.php on line 845" while reading upstream, client: 2001:aaaa:aaaa:aaaa:eef4:bbff:fe47:c54c, server: bilder.kernel-error.de, request: "GET / HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "bilder.kernel-error.de"
2017/05/30 15:53:29 [error] 97077#100936: *1 FastCGI sent in stderr: "PHP message: PHP Warning:  [mysql error 1054] Unknown column 'last_visit' in 'field list'

Also schaue ich mir mal die Logmeldungen zum Zeitpunkt des Upgrades von Version 2.8.x auf Version 2.9.0 an und finde diesen Eintrag:

ALTER TABLE `piwigo_user_infos`
  ADD COLUMN `last_visit` datetime default NULL,
  ADD COLUMN `last_visit_from_history` enum('true','false') NOT NULL default 'false'
; in /pfad/bilder.kernel-error.de/include/dblayer/functions_mysqli.inc.php on line 845" while reading response header from upstream, client: 2001:aaaa:aaaa:aaaa:eef4:bbff:fe47:c54c, server: bilder.kernel-error.de, request: "GET /upgrade.php?now= HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "bilder.kernel-error.de"
2017/05/30 15:53:28 [error] 97076#100895: *48 FastCGI sent in stderr: "PHP message: PHP Warning:  [mysql error 1054] Unknown column 'last_visit' in 'field list'

Tja… Da ist beim Upgrade aus irgendeinem Grund also wirklich das Upgrade an der Datenbanke abgesoffen 🙁 Ich habe mir dann aus dem Upgradescript die passenden Einträge für die Datenbank herausgesucht und sie noch einmal von Hand auf die DB log gelassen:

ALTER TABLE `piwigo_comments` CHANGE `date` `date` datetime NOT NULL default '1970-01-01 00:00:00';
ALTER TABLE `piwigo_history` CHANGE `date` `date` date NOT NULL default '1970-01-01';
ALTER TABLE `piwigo_images` CHANGE `date_available` `date_available` datetime NOT NULL default '1970-01-01 00:00:00';
ALTER TABLE `piwigo_old_permalinks` CHANGE  `date_deleted` `date_deleted` datetime NOT NULL default '1970-01-01 00:00:00';
ALTER TABLE `piwigo_rate` CHANGE `date` `date` date NOT NULL default '1970-01-01';
ALTER TABLE `piwigo_sessions` CHANGE `expiration` `expiration` datetime NOT NULL default '1970-01-01 00:00:00';
ALTER TABLE `piwigo_upgrade` CHANGE `applied` `applied` datetime NOT NULL default '1970-01-01 00:00:00';
ALTER TABLE `piwigo_user_infos` CHANGE `registration_date` `registration_date` datetime NOT NULL default '1970-01-01 00:00:00';
ALTER TABLE `piwigo_user_infos`
  ADD COLUMN `last_visit` datetime default NULL,
  ADD COLUMN `last_visit_from_history` enum('true','false') NOT NULL default 'false'
;

Scheint zu passen 🙂