SQLite

This page is a translated version of the page Manual:SQLite and the translation is 97% complete.
Outdated translations are marked like this.
logo SQLite
logo SQLite

Le support SQLite de MediaWiki concerne la qualité depuis MediaWiki 1.17. Le support de SQLite fait partie de la base de code principale depuis la version 1.13 de MediaWiki. Néanmoins, le support pour SQLite par les extensions qui font des modifications dans la base de données, est variable. Vous trouverez ci-dessous quelques notes sur l'installation de la bibliothèque SQLite dans votre environnement PHP.

Bien que SQLite soit de la qualité de la production et que le support courant existe, il y a deux mises en garde importantes à l'utilisation de SQLite avec MediaWiki. D'abort tandis que de nombreuses extensions prennent en charge réellement SQLite, certaines extensions populaires ne l'ont jamais fait, même jusqu'à aujourd'hui. En second, SQLite ne reste pas plus qu'un serveur. Au cas où votre wiki pourrait grandir pour avoir de nombreux utilisateurs simultanés et une grande quantité de contenu, il serait préférable d'utiliser un système de base de données qui prend en charge le modèle de réplicat primaire tel que MySQL. La conséquence est que si votre wiki risque de dépendre de ce type d'extension, ou s'il peut avoir besoin d'utiliser un système de base de données primaire répliquée, il vaut mieux utiliser une base de données MySQL pour votre wiki. La décision d'utiliser SQLite, MySQL ou un autre système de base de données doit idéalement être prise AVANT de créer votre wiki, car il est difficile de convertir une base de données SQLite en une base de données MySQL une fois que vous avez commencé à utiliser votre wiki.

À propos de SQLite

SQLite est une bibliothèque de base de données à source ouvert mise dans le domaine public. A l'inverse des systèmes de gestion des bases de données client-serveur , la bibliothèque SQLite est liée à PHP et devient partie intégrante du processus serveur. MediaWiki utilise les fonctionnalités de SQLite au travers de simples appels de fonctions, ce qui réduit la latence pour l'accès à la base de données car les appels de fonctions sont plus efficaces que la communication inter-processus.

Le fait d'utiliser SQLite comme serveur de base de données pour Mediawiki a ses pour et ses contre :

Pour
  • Vous n'avez pas à installer ni à maintenir un serveur de base de données séparé tel que MySQL; cela réduit de manière significative les efforts passés à l'administrer et supprime les points générateurs d'erreurs.
  • Le point précédent indique aussi que SQLite est bien plus adapté aux installations MediaWiki portables qui s'exécutent à partir d'une clé USB.
  • Sur les hôtes partagés, vous n'êtes pas contraint par les limites artificielles de la base de données .
  • La base de données toute entière est rangée comme un fichier unique inter plateformes facilitant ainsi les sauvegardes et la migration.
Contre
  • SQLite n'est pas trop redimmensionnable donc si vous avez un gros wiki populaire, vous devriez utiliser MySQL.
  • Bien que SQLite ait son propre moteur de recherche, il n'est pas pris en charge par les solutions plus avancées telles que Lucene.
  • Certaines extensions sont connues pour avoir des problèmes lors de la mise à jour de la base de données ou de l'installation avec : AbuseFilter, Echo, Flow, et LiquidThreads.

Installation de SQLite

Au minimum vous avez besoin de la version 3.8.0 de SQLite. Aussi, pour pouvoir utiliser la recherche plein texte, SQLite doit être compilé avec le module FTS3 activé (aujourd'hui la plupart des compilations le gèrent séparément). SQLite3 fonctionne en utilisant les fonctions PDO de PHP.

  • Pour installer SQLite3 sur un système basé sur Debian ou Ubuntu, utilisez apt-get install php-sqlite3.
  • Les binaires Windows de php.net sont OK.
  • Le module PHP PDO SQLite doit être chargé. Vous devez décommenter la ligne suivante du fichier php.ini
    • extension=pdo_sqlite
  • Où mettre la base de données SQLite elle-même ? Le chemin par défaut semble être $IP/../data/$dbname.sqlite . Tout ce qui se trouve à l'extérieur de la racine web doit être sécurisé; néanmoins, il est bien de l'avoir à proximité. Ou si le fonctionnement est similaire, vous pouvez placer ce contenu quelque part dans la racine web et vérifier en configurant le serveur web, que l'accès y est interdit.

Installer MediaWiki sur le serveur SQLite

  • Si le module SQLite de PHP est correctement installé, l'installeur de MediaWiki ($index) devrait vous présenter une option pour utiliser SQLite.

Dans les versions MediaWiki antérieures à la 1.16, vous deviez entrer quelque chose dans les champs du nom d'utilisateur de la base de données et du mot de passe de la base de données pour que l'installeur puisse continuer même si SQLite n'en avait pas besoin.

  • Si vous ne mettez rien dans le champ « répertoire des données de SQLite » , votre $wgSQLiteDataDir restera vide, ce qui correspond au répertoire data du parent de la racine du document, néanmoins ce répertoire peut être différent pour les scripts web et les scripts de maintenance exécutés depuis la ligne de commande, il est donc préférable de l'initialiser explicitement.

Moteur de recherche

Version de MediaWiki :
1.16

Les possibilités de recherche pour le serveur SQLite ont été introduites dans MediaWiki 1.16. Elles nécessitent SQLite avec le module FTS3 compilé, qui figure habituellement dans la plupart des compilations modernes. Si vous venez de faire la mise à jour de SQLite avec une version qui contient FTS3, exécutez le script de mise à jour comme si vous faisiez la mise à jour de MediaWiki. Après que le script de mise à jour a créé la table d'index de recherche, remplissez-la avec rebuildtextindex.php . La même chose se passe si on revient à un environment sans FTS3: la réexécution du script de mise à jour va dégrader la table pour éviter les erreurs SQL.

Sauvegarde

Si votre wiki n'est pas actuellement en ligne, sa base de données peut être sauvegardée simplement en copiant le fichier de base de données. Sinon, vous devez utiliser le script de maintenance : php maintenance/SqliteMaintenance.php --backup-to <backup file name>, qui assurera que l'opération est atomique et qu'il n'y a pas d'incohérences. Si votre base de données n'est pas très grande et n'est pas surchargée, les utilisateurs qui modifient le wiki ne s'apercevront de rien à part d'une faible latence. Les utilisateurs qui ne font que la lecture ne s'appercevront de rien dans tous les cas.

Résolution des problèmes

Impossible d'accéder à la base de données à partir du terminal

Pour obtenir l'accès aux commandes de la base de données en mode ligne, entrez dans le terminal :

sqlite3 /var/data/database_name.sqlite

en remplaçant /var/data par le répertoire qui a été défini comme « répertoire de données de SQLite » dans le processus d'installation. Cherchez par ailleurs $wgSQLiteDataDir dans le fichier LocalSettings.php .

Ceci peut s'avérer fastidieux si vous n'avez pas l'habitude de SQLite et que vous exécutez sqlite3 database_name - car cela ouvre une base de données complètement différente (en la créant si elle n'existe pas) parce que SQLite interprète l'argument non pas comme un nom de base de données universel, mais comme le nom du fichier contenant la base de données.

Problèmes

Les bogues doivent être signalés sur le suivi des bogues de Wikimedia. Assurez-vous déjà que le problème n'a pas été signalé - vérifiez les dépendances de l'étiquette $phab et utilisez la recherche. Si vous ne trouvez pas votre problème, créez un nouveau rappport de bogue. Si le problème est directement lié au serveur SQLite, déclarez le sous le composant MediaWikiDatabase. Sinon (si le problème concerne un aspect très spécifique du logiciel ou d'une extension), choisissez un produit et un composant approprié. Dans tous les cas, ajoutez quelques étapes pour que l'on puisse reproduire et suivre facilement votre bogue : mentionnez SQLite dans le champ résumé et rattachez le à l'étiquette sqlite pour la dépendance.

Voir aussi

Liens externes