Table des matières
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 !!! )
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! )
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