Note: You are currently viewing documentation for Moodle 2.3. Up-to-date documentation for the latest stable version is available here: SQLite.
SQLite is a serverless SQL database implementation. Moodle has experimental support for it. It is not recommended for production Moodle sites.
Moodle's SQLite driver requires SQLite PDO driver to be present in PHP. It won't work with native (non-PDO) SQL driver in PHP.
Configuring Moodle for SQLite
Following is for Moodle 2.2.4 (Build: 20120706). You need to set the following parameters. It will work if you don't set the null values, but you'll get notices if you set PHP debug level to high. $CFG->dbtype= 'sqlite3'; $CFG->dblibrary= 'pdo'; $CFG->dbhost= null; $CFG->dbname= null; $CFG->dbuser= null; $CFG->dbpass= null; $CFG->dbprefix= ; // any prefix (e.g. 'mdl') is ignored, therefore don't use it, because it upsets 3rd party modules $CFG->dboptions= array();
Then you need to fix lib/ddl/sqlite_sql_generator.php. Copy definitions of functions getCreateTempTableSQL($xmldb_table) and getDropTempTableSQL($xmldb_table) from lib/ddl/postgres_sql_generator.php.
Then installation works fine; however, it dies after installed, saying 'PHP catchable fatal error'. Let's investigate: cd <moodledata> ll *sq* -rw-r--r-- 1 apache apache 1624064 Oct 23 08:46 _d41d8cd98f00b204e9800998ecf8427e.sq3.php
- your DB file may have a different name _d41d8cd98f00b204e9800998ecf8427e.sq3.php
- change ownership, so that I can write to the DB. Change group access rights, so that Apache can still write to it.
sudo chown <myusername> _d41d8cd98f00b204e9800998ecf8427e.sq3.php chmod g+w _d41d8cd98f00b204e9800998ecf8427e.sq3.php sqlite _d41d8cd98f00b204e9800998ecf8427e.sq3.php SELECT * FROM config WHERE name LIKE '%debug%'; UPDATE config SET value=32767 WHERE name='debug'; -- This is for PHP 5.4+ .quit
From old documentation: The other database parameters are not used. The database tables are stored in the 'moodledata' file area.