De SQLite a MySQL & Inversement grâce au plugin Fusion

Passer de SQLite a MySQL et inversement grâce à Fusion de SPIP tant pour un site autonome que pour une mutualisation.

Site autonome

Si vous avez créé votre site avec une base de données en sqlite, et que pour diverses raisons vous voulez le passer en mysql, voici comment procéder :

  1. dans le répertoire /config, supprimer le fichier connect.php,
  2. vider complètement le contenu de /tmp (pour rebooter Spip)
  3. appeler l’url /ecrire pour relancer l’installation, choisir cette fois une base mysql,
  4. une fois le site installé en mysql, aller dans « Maintenance » / « Maintenance technique », et suivre les 3 étapes de « Déclarer une autre base » : choisir Sqlite3, sur l’écran suivant choisir la base sqlite existante, et valider jusqu’à « La nouvelle base a bien été déclarée ... » (cf paragraphe « 1 - Déclarer une base externe » ),
  5. lancer la fusion en choisissant comme source la base sqlite,

Hébergement mutualisé

Si vous avez créé une mutualisation et qu’un de vos sites, avec une base de données en sqlite, doit être converti en mysql, la méthode décrite le permet facilement :

  1. Sauvegardez le contenu de la base du site en SQLITE
  2. Récupérez cette sauvegarde
  3. Créez un site spip SQLITE a la racine de votre mutualisation, dans la même version que le site devant être migré.
  4. Transférez votre sauvegarde SQLITE sur ce site
  5. Installez votre SPIP avec cette sauvegarde.

Ça fonctionne ? Cool. Il suffit par la suite de reprendre la procédure classique.

  1. dans le répertoire /config, supprimez le fichier connect.php,
  2. videz complètement le contenu de /tmp (pour rebooter Spip)
  3. appelez l’url /ecrire pour relancer l’installation, choisissez cette fois une base mysql,
  4. une fois le site installé en mysql, allez dans « Maintenance » / « Maintenance technique », et suivez les 3 étapes de « Déclarer une autre base » : choisissez Sqlite3, sur l’écran suivant choisissez la base sqlite existante, et validez jusqu’à « La nouvelle base a bien été déclarée ... » (cf paragraphe « 1 - Déclarer une base externe » ),
  5. lancez la fusion en choisissant comme source la base sqlite,

Si vous avez cette erreur

Le site hôte et le site source ne sont pas dans la même version de base de données :
- hôte est en version 19268
- source est en version

alors il vous faudra commenter la ligne 64 de /fusion_spip/formulaires/fusion_spip.php
soit :

// $erreurs['versions_bases'] = _T('fusion_spip:erreur_versions', array('vhote'=>$spip_version_base, 'vsource'=>$vsource['valeur']));
  1. Ensuite il vous faudra de nouveau reconfigurer votre SPIP, Identité du site, etc...

Remarques

-  Cette astuce marche aussi dans l’autre sens : passer de Mysql à sqlite, mais le besoin a été moins souvent exprimé.
-  Autre article, lisible sur le Carnet : Passage de SQLite à MySQL (et réciproque)

Cet article a vu le jour parce-que je ne suis pas doué malgré l’aide de
Gilles Vincent, Suske, nicod_.

updated on 2 October 2019

Discussion

Aucune discussion

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom