ReLoad

Thierry Jaouen ~ WikiBlog
"Rien à foutre d'être lu, tant que je peux me relire."

Outils pour utilisateurs

Outils du site


blog:2013:08:05:roundcube_et_l_obsolete_sqlite_v2

Roundcube et l'obsolete SQLite v2

Comme Sqlite v2 est devenu obsolète au profit de Sqlite v3 , mais que Roundcube n'est plus compatible avec Sqlite, il faut faire une migration vers MySQL … Oooooh shit !

:!: A faire avant de migrer sous Wheezy !

~~READMORE~~

Cela suppose que le package “roundcube-sqlite” est installé: sinon, passé votre chemin.

Backup d'abord

Il faut que le “webmail” roundcube est une base (sqlite v2) stable.

Pour cela: il faut arreter les accès sur la base. Le plus radical:

# /etc/init.d/apache2 stop

(ce qui suppose qu'il n'y a que ce service !!! LOL )

Copier la base en lieu sur:

# cp -p /var/lib/dbconfig-common/sqlite/roundcube/roundcube ~thierry/backup-roundcube

Installer MySQL

# aptitude update
# aptitude install mysql-server mysql-client

Attribuer un mot de passe “root” !

Changer de database

Installer roundcube-mysql :

:!: j'utilise roundcube version backports !
# aptitude -t squeeze-backports install roundcube-mysql
# dpkg-reconfigure roundcube-core
  • Ne répondre qu'aux questions relatives aux bases de données.
  • Ne pas redemarrer Apache2 (ou ne pas relancer le service par un autre biais)

Le seul fichier touché dans la conf /etc/roundcube est debian-db.php .

Transfert

:!: UDPATE : Ce script est mieux !

Créer le script roundcube-sqlite-convert.sh a partir de cette source: https://wiki.debian.org/Roundcube/DeprecationOfSQLitev2

(copier/coller dans roundcube-sqlite-convert.sh )

Ce script va extraire 3 tables en format “.sql”, d'une base “roundcube” “sqlite” nommé “roundcube”.

Donc (là où j'ai sauvé la base précédemment) :

# cd ~thierry
# cp backup-roundcube roundcube
# sh roundcube-sqlite-convert.sh
:!: UPDATE le script présenté ci-dessus ne fonctionne pas bien si les champs contiennent des caractères interprétés comme des “retour à la ligne”. Préférer celui-ci

Maintenant, importer les données dans la database “roundcube” de MySQL :

( j'ai choisit “root” mais ça pourrait être l'utilisateur “roundcube”, pourvu qu'il est les droits)

# mysql -u root -p roundcube < users.sql 
# mysql -u root -p roundcube < contacts.sql 
# mysql -u root -p roundcube < identities.sql

Fini

# /etc/init.d/apache2 start

Vérifier que ça marche encore. (au pire, la base est vide! LOL )

Maintenant, on peut virer “roundcube-sqlite” :

# aptitude remove roundcube-sqlite

Et puis (je ne sais pourquoi):

# aptitude install

… qui va encore virer des dépendances devenu inutiles.

… mais aussi:

# aptitude remove libsqlite0 php5-sqlite
# aptitude purge libsqlite0 php5-sqlite

Sources

blog/2013/08/05/roundcube_et_l_obsolete_sqlite_v2.txt · Dernière modification : 2013/08/07 08:35 de thierry