Zitat- Welche Version von pd-admin wird eingesetzt?
4.14
- Welche Version der Serverumgebung wird eingesetzt?
2-0.167
- Wie sind die problematischen Dienste konfiguriert?
Standard
Hallo,
ich setzte dieses Thema sofort auf erledigt und eröffne es nur damit es eventuell jemanden hilft. Mir ist dank eines Kunden, der sich noch nie in das Webmail eingeloggt hat, aufgefallen das es anscheint keine Tabellen-Updates für Roundcubemail mit der PD-Admin SE gibt.
Darauf folgt das der Kunde einen 500er Fehler von Roundcube erhalten hat:
Ich habe also daher mir die Logs aus Roundube angesehen:
# cat /usr/local/pd-admin2/htdocs/roundcubemail/logs/errors
DB Error: _doQuery: [Error message: Could not execute statement]
[Last executed query: PREPARE mdb2_statement_mysql_750bb75ba254c9f536c1d846c8ba02bb1648693e5 FROM 'INSERT INTO identities (changed, `email`, `name`, `standard`, user_id) VALUES (now(), ?, ?, ?, ?)']
[Native code: 1054]
[Native message: Unknown column 'changed' in 'field list']
in /usr/local/pd-admin2/htdocs/roundcubemail/program/include/rcube_mdb2.php on line 264 (POST /roundcubemail/?_task=&_action=login)
DB Error: _doQuery: [Error message: Could not execute statement]
[Last executed query: PREPARE mdb2_statement_mysql_4793401a876fe1f010e33856635064fad55e45634 FROM 'SELECT * FROM contactgroups WHERE del<>1 AND user_id=? AND `name` LIKE \'%xxxxxxxxxxxxxxxxxxxx%\' ORDER BY name']
[Native code: 1146]
[Native message: Table 'roundcubemail.contactgroups' doesn't exist]
Alles anzeigen
Darauf hin habe ich in das SQL Verzeichnis von Roundcube gewechselt:
Hier befand sich nun unter anderem die Datei mysql.update.sql
Dort findet man auch alle Updates die von Version zu Version hinzugekommen sind. Bei uns waren, je nach alter des Servers bzw. nach dem Alter der Neuinstallation (so kam es mir zumindestens vor) folgende Befehle am meisten zum Einsatz:
TRUNCATE `messages`;
ALTER TABLE `messages`
ADD INDEX `index_index` (`user_id`, `cache_key`, `idx`);
ALTER TABLE `session`
CHANGE `vars` `vars` MEDIUMTEXT NOT NULL;
ALTER TABLE `contacts`
ADD INDEX `user_contacts_index` (`user_id`,`email`);
-- Updates from version 0.3.1
-- WARNING: Make sure that all tables are using InnoDB engine!!!
-- If not, use: ALTER TABLE xxx ENGINE=InnoDB;
/* MySQL bug workaround: http://bugs.mysql.com/bug.php?id=46293 */
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
ALTER TABLE `messages` DROP FOREIGN KEY `user_id_fk_messages`;
ALTER TABLE `cache` DROP FOREIGN KEY `user_id_fk_cache`;
ALTER TABLE `contacts` DROP FOREIGN KEY `user_id_fk_contacts`;
ALTER TABLE `identities` DROP FOREIGN KEY `user_id_fk_identities`;
ALTER TABLE `messages` ADD CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `cache` ADD CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `contacts` ADD CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `identities` ADD CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `contacts` ALTER `name` SET DEFAULT '';
ALTER TABLE `contacts` ALTER `firstname` SET DEFAULT '';
ALTER TABLE `contacts` ALTER `surname` SET DEFAULT '';
ALTER TABLE `identities` ADD INDEX `user_identities_index` (`user_id`, `del`);
ALTER TABLE `identities` ADD `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00' AFTER `user_id`;
CREATE TABLE `contactgroups` (
`contactgroup_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
`del` tinyint(1) NOT NULL DEFAULT '0',
`name` varchar(128) NOT NULL DEFAULT '',
PRIMARY KEY(`contactgroup_id`),
CONSTRAINT `user_id_fk_contactgroups` FOREIGN KEY (`user_id`)
REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
INDEX `contactgroups_user_index` (`user_id`,`del`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
CREATE TABLE `contactgroupmembers` (
`contactgroup_id` int(10) UNSIGNED NOT NULL,
`contact_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
`created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
PRIMARY KEY (`contactgroup_id`, `contact_id`),
CONSTRAINT `contactgroup_id_fk_contactgroups` FOREIGN KEY (`contactgroup_id`)
REFERENCES `contactgroups`(`contactgroup_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `contact_id_fk_contacts` FOREIGN KEY (`contact_id`)
REFERENCES `contacts`(`contact_id`) ON DELETE CASCADE ON UPDATE CASCADE
) /*!40000 ENGINE=INNODB */;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
-- Updates from version 0.4-beta
ALTER TABLE `users` CHANGE `last_login` `last_login` datetime DEFAULT NULL;
UPDATE `users` SET `last_login` = NULL WHERE `last_login` = '1000-01-01 00:00:00';
Alles anzeigen
Hoffe ich konnte jemanden helfen.
Denke es sind mehrere die PD-Admin verwenden betroffen, da wir auf jedem Server dieses Problem feststellen konnten. - Und das wird kein Zufall sein...
Gruß