Solucionar problemas con RoundCube de addressbook


Buenas...

Desde hace algún tiempo vengo usado las versiones de RoundCube desde sus faces betas hasta la estable que salio hace poco, en una de las ultima actualizaciones me encontré con una serie de pequeños problemas que son el fruto de no hacer los UPGRADE bien, todo hay que decirlo desde luego.

Al usuario le aparece este mensaje, después de crear el usuario y darle a guardar.

An error occured while saving



Primero que nada, hacemos una copia de la DDBB para evitar problemas.

$ mysqldump -u USER roundcubemail > ~/201210241053.roundcubemail.sql -p



Pues bien, uno de los problemas que tenía era que los usuarios NO podían añadir nuevos contactos a sus addressbook, este problema viene de la TABLE users, donde no encuentra 'words' a la hora de guardar el contacto el debug canta...


[Last executed query: INSERT INTO contacts (user_id, changed, del, `vcard`, `name`,
  `email`, `firstname`, `surname`, `words`) VALUES ...
  [Native code: 1054] [Native message: Unknown column 'words' in 'field list']

Pues para solucionar esto.

$ mysql - USER -p
mysql> use roundcubemail;
mysql> ALTER TABLE `contacts` ADD `words` VARCHAR( 500 ) NULL DEFAULT NULL;

Ok, ahora nuestros usuarios podrán añadir contactos a sus addressbook.

Otro problema con el que me encontraba desde la versión 0.7.1 con está 0.8.1 era de que X usuarios no podían hacer login en RoundCube, pero sí en un squirrelmail. A diferencia del error anterior este no cantaba nada por ningún lado, ni logs de postfix, dovecot, apache.... Así que mi parche es el siguiente.

$ mysql -u usuario -p
mysql> SELECT *  FROM  `users`;    # Vemos la lista de usuarios.
mysql> INSERT INTO `roundcubemail`.`users` (`user_id`, `username`, `mail_host`, `alias`, `created`, `last_login`, `language`, `preferences`) VALUES (NULL, 'elmisterioso', 'dominio.org', '', '2012-10-20 10:00:00', '2012-10-24 10:00:00', 'es_ES', 'a:1:{s:11:"search_mods";a:4:{s:1:"*";a:2:{s:7:"subject";i:1;s:4:"from";i:1;}s:4:"Sent";a:2:{s:7:"subject";i:1;s:2:"to";i:1;}s:6:"Drafts";a:2:{s:7:"subject";i:1;s:2:"to";i:1;}s:5:"INBOX";a:2:{s:7:"subject";i:1;s:4:"from";i:1;}}}');   # Ok, aquí simplemente añadimos al usuario que no puede hacer login.
mysql> exit;


Procedemos a entrar en nuestro roundcube, con el usuario en cuestión.ACLARO esto es para salir del paso, lo ideal sería borrar la BBDD y crearla como es debido.

Saludos