Manual:SQLite/nl



Het doel van deze pagina is het verzamelen van informatie en ervaringen over het gebruik van SQLite voor het gebruik van MediaWiki.

MediaWiki ondersteunt SQLite sinds 1.17, dit is echter een wat beperkte ondersteuning, je kunt dus wat problemen ontdekken. Meestal wordt de database gebruikt voor de MediaWiki. Zie Phabricator voor een lijst met opmerkingen. MediaWiki vereist minimaal SQLite versie. Ondersteuning voor SQLite door uitbreidingstoepassingen die de database veranderen varieert echter.



Is SQLite een goede keus voor de MediaWiki?
Er zijn twee belangrijke zaken om op te letten als je SQLite voor MediaWiki gebruikt. Ten eerste, hoewel vele extensies SQLite ondersteunen, zijn sommige extensies daar nog niet klaar voor. Ten tweede, SQLite bestrijkt maar één server. In het geval je wiki groeit naar meer gebruikers tegelijkertijd en een grote hoeveelheid inhoud, is het beter voor een databasesysteem als MySQL te kiezen dat het primary-replicamodel ondersteunt. Daardoor kan, als uw wiki afhankelijk is van het gebruik van deze extensies of als een primary-replica database systeem moet gebruiken, wel het beste zijn om een MySQL-database te gebruiken voor uw wiki. De beslissing om SQLite, MySQL of een ander databasesysteem te gebruiken neem je idealiter voor je de wiki aanmaakt, omdat het moeilijk is van SQLite naar MySQL te converteren wanneer de wiki al draait.



Over SQLite
SQLite is een open-source databasebibliotheek vrijgegeven in het publiek domein. In tegenstelling tot client-server databasemanagementsystemen is die ingebed in PHP en maakt zodoende integraal deel uit van het serverproces. MediaWiki gebruikt SQLite's functionaliteit via eenvoudige functie aanroepen, die de wachttijd beperken bij de database toegang omdat functie aanroepen efficiënter zijn dan  communicatie tussen processen.

SQLite als database-backend voor MediaWiki gebruiken heeft zijn eigen voor- en nadelen:


 * Voordelen


 * Het is niet noodzakelijk een zelfstandige database-server als MySQL te installeren en onderhouden; dit vermindert inspanningen voor en kansen op fouten bij beheer.
 * Voorgaande betekent ook dat SQLite geschikter is voor een MediaWiki-installatie vanaf een USB-stick.
 * Je bent niet beperkt door kunstmatige databasebeperkingen opgelegd door gedeelde hosts.
 * De complete database is opgeslagen als een enkel crosplatformbestand, vereenvoudigend backup en migratie.


 * Nadelen


 * SQLite is niet zo schaalbaar, als je een grote en populaire wiki hebt, gebruik dan liever MySQL.
 * Hoewel SQLite zijn eigen zoekmachine heeft wordt het niet ondersteund door geavanceerde oplossingen als Lucene.
 * Sommige extensies blijken databasewijzigings- of installatieproblemen te hebben met SQLite: AbuseFilter, Echo, Flow en LiquidThreads.



SQLite installatie
De versie van SQLite moet minstens + zijn. Om ook te kunnen zoeken op 'full text' moet SQLite gecompileerd zijn met de module FTS3 ingeschakeld (dat is meestal wel zo). SQLite3 werkt via PHP's PDO functies.


 * Om SQLite3 te installeren op een op Debian/Ubuntu gebaseerd systeem, gebruik.
 * Windows binaries van php.net zijn goed.
 * De PHP-module PDO SQLite moet geladen zijn. Maak in uw  de volgende regel actief (die staat mogelijk op commentaar)
 * Waar de SQLite database te plaatsen? Het pad schijnt standaard te zijn $IP/../data/$dbname.sqlite . Alles buiten de webroot zou veilig moeten zijn; het is het goed om het daar in de buurt te plaatsen. Als u het toch in de webroot wil plaatsen zorg dan dat configuratie van de webserver onbedoelde toegang er toe voorkomt.
 * Waar de SQLite database te plaatsen? Het pad schijnt standaard te zijn $IP/../data/$dbname.sqlite . Alles buiten de webroot zou veilig moeten zijn; het is het goed om het daar in de buurt te plaatsen. Als u het toch in de webroot wil plaatsen zorg dan dat configuratie van de webserver onbedoelde toegang er toe voorkomt.



Installeren MediaWiki op SQLite backend

 * Als de module SQLite voor PHP goed is geïnstalleerd, zal de MediaWiki installer u de optie aanbieden om SQLite te gebruiken.
 * Als u het veld "SQLite data directory" niet invult, zal uw leeg blijven, wat overeenkomt met de map   in de map boven map document, dit kan anders zijn bij webscripts en onderhoudsscripts uitgevoerd op de commandoregel, dus is het beter om het veld hier wel in te vullen.



Zoekmachine
De zoekmogelijkheden voor de SQLite backend zijn toegevoegd in MediaWiki 1.16. Zij verplichten dat SQLite met de FTS3 module is gecompileerd, dat is gewoonlijk wel zo. Als u recent de ondersteuning van SQLite heeft bijgewerkt naar een versie die FTS3 bevat, voer de updater uit alsof u MediaWiki aan het upgraden bent. Nadat de updater de zoekindex tabel heeft aangemaakt, vul deze dan met. Hetzelfde als u gaat naar een omgeving zonder FTS3: het opnieuw uitvoeren van de updater zal de tabel downgraden om SQL-fouten te voorkomen.



Probleemoplossing


Geen toegang via de terminal tot de database
Om via de commandoregel toegang te krijgen tot de database, voer in:

sqlite3 /var/data/database_name.sqlite

vervang  door de map die bij de installatie is opgegeven voor de gegevens van SQLite. Een alternatief is te kijken naar in.

Dit is een risico als u geen ervaring heeft met SQLite en  uitvoert, omdat dit een andere database opent (aanmaakt als die niet bestaat) omdat SQLite het argument niet ziet als een databasenaam op het hele systeem, maar als de bestandsnaam die de database bevat.

Problemen
Fouten kunnen worden gemeld op Wikimedia's bug tracker. Kijk eerst of het probleem al is gemeld, controleer de afhankelijkheden van de tag en gebruik het zoeken. Als het een nieuw probleem is, maak dan een issue aan. Zorg in ieder geval dat uw probleem eerder te vinden en te volgen is door de volgende stappen te doen: noem SQLite in het veld met de samenvatting (summary) en geef het de project tag SQLite.

Performance Tips

 * Indien mogelijk, controleer of de PHP-extensie APCu is geïnstalleerd en of de waarde CACHE_ACCEL heeft. Zonder cache zal MediaWiki de database als cache gebruiken, dit kan leiden tot verschillen bij het schrijven. Bij Sqlite kan dit zorgen voor een traag werkende wiki.
 * Zorg ervoor dat uw SQLite database in de WAL mode (Write-Ahead Logging – WAL) staat. Dit kan grote gevolgen hebben voor de performance als mensen uw website tegelijk bekijken en bewerken. U kunt dit doen door het Sqlite commando-regel hulpmiddel te gebruiken om de database te openen en daarna het commando  uit te voeren.



Zie ook

 * SQLite-specifieke configuratie-instellingen:
 * - MediaWiki 1.35 en ouder
 * MediaWiki 1.36+
 * MediaWiki 1.36+



Externe links

 * Migrating MediaWiki from MySQL to SQLite
 * Tool to migrate MediaWiki from SQLite to MySQL
 * SQLite website
 * Wikipedia artikel over SQLite