Carnet Wiki

sqlite

Version 14 — November 2012 — olivier

Notes autour de SPIP & SQLite

sqlite pour spip

-# la sauvegarde SPIP 3 se fait désormais dans un format SQLite, que la base de donnée soit au format mySQL ou SQLite

  1. SQLite est en normalement intégré par défaut à PHP 5... mais ce n’est pas toujours le cas.
  2. les écritures dans la base de donnée sont très coûteuses avec sqlite : 100ms par opération constate mm “très couteuses” ? source ? donner une valeur sans comparaison n’a aucun sens...

Intérêts Limites et limites intérêts de SQLite

SQLITE

Installer un SPIP avec SQLite est immédiat : pas besoin de créer une base dans un autre outil, pas besoin de login ni de mot de passe. Cela simplifie l’expérience de la première installation.

- sqlite est bien pour développer en local un site temporaire et pour en faire les tests. Notamment parce que toute la base de donnée est en fichier sous le répertoire config.

La Le principal intérêt de sqlite est que la base de données Sqlite est dans un fichier ( rangé situé dans config/bases ). / config . Du coup, il le site est facile de copier ou transporter tout son site portable : il suffit de copier le répertoire de SPIP pour disposer d’un backup complet de tout le site (fichiers + base) que l’on peut réinstaller autre part .

Sur - en ligne sqlite est bien sur un hébergement dédié

-   sur un hébergement mutualisé, SQLite sqlite peut être donc aller moins rapide vite que mySQL mysql , selon la configuration du serveur, en raison des accès disques : sur un mutualisés, les accès aux fichiers sont parfois lents car déportés sur le réseau, or avec sqlite, la base de donnée est dans un fichier. Raisonnement erroné : sur un hébergement mutualisé mySQL est aussi sur un autre serveur et les accès se font par réseau comme pour SQLite. Cela ne change rien en relatif mySQL vs SQLite que l’on soit sur un dédié ou sur un mutualisé

Passages de SQLite SQLITE à mySQL MYSQL ou réciproquement

Etant donné que tant les spip fonctionnant avec SQLite que ceux fonctionnant avec MYSQL font leurs sauvegardes dans un dump au format sqlite, on pourrait penser qu’il est possible de facilement changer le format de base de donnée en l’exportant/important via ce dump, après avoir changé de format. Ce n’est pas exactement le cas.

Une raison est historique : SPIP ne fonctionnant initialement que sous mySQL les structures sont décrites dans le formalisme correspondant, et le connecteur SQLite de SPIP se débrouille pour transposer.
A contrario, le connecteur mySQL de SPIP ne sait pas prendre une structure ecrite dans un autre formalisme que le sien.

L’autre raison tient au fait que la structure SQLite est moins riche que la structure mySQL.

Le passage de SQLite vers MYSQL (via un dump SQLite) n’est en général PAS possible

Le passage de mySQL vers SQLite (via dump SQLite) est simple et sans risque par contre possible

Si vous avez un site sous mySQL il suffit de faire une sauvegarde depuis le site et de la réimporter dans un site installé avec SQLite. Le passage dans ce sens est généralement très bien supporté et ne pose pas de problèmes.

Le passage de SQLite à mySQL (via un dump SQLite) est problématique

La structure d’une base SQLite Il est plus pauvre que celle d’une base mySQL et il est difficile de deviner certaines informations de structure qui ne sont plus présentes dans SQLite pour recréer la structure de la base une table mySQL à partir de celle de la structure SQLite sans risque de bugs ultérieurs .On perd des infos de structures de base comme l’auto-increment.

ici expliquer la procédure manuelle pour faire cette opération proprement

Administration

Une gestionnaire On peut déduire la première de base de données en ligne ? la seconde sans perte d’information . [->http://www.adminer.org]

Un équivalent léger de phpmyadmin pour sqlite, utilisable en local uniquement (mamp, easyphp etc) est un plugin de firefox: sqlite manager et codev, un plugin pour le navigateur chrome

Si on gère son serveur sous Ubuntu, il faut installer sqlite3 et pas sqlite ! ça se fait avec :
sudo pecl install pdo_sqlite

-# la sauvegarde spip 3 se fait désormais dans un format sqlite, que la base de donnée soit au format MYSQL ou SQLITE

  1. sqlite est en général intégré en standard aux installations de php5... mais exceptionnellement ce n’est pas le cas.
    -# Une gestionnaire de base de données en ligne ? [->http://www.adminer.org]
    -# un équivalent léger de phpmyadmin pour sqlite, utilisable en local uniquement (mamp, easyphp etc) est un plugin de firefox: [sqlite manager->https://code.google.com/p/sqlite-manager/] et [codev, un plugin pour le navigateur chrome->http://codev.it/]
    -# les écritures dans la base de donnée sont très coûteuses avec sqlite : 100ms par opération constate mm.
    -# si on gère son serveur sous Ubuntu, il faut installer sqlite3 et pas sqlite !

    Cas particuliers

    ça se fait avec :
    <
    code>sudo pecl install pdo_sqlite</code >

  2. certaines extensions de mysql ne sont pas disponible pour sqlite : notamment geométrie (pour GIS), fullsearch
  3. sur une mutualisation SPIP, les 2 formats de données ne cohabitent pas (sur des sites différents) par défaut. Selon un témoignage, il est toutefois possible de le faire en choisissant un des 2 dans mes_options.