Go to file
2010-03-08 23:39:22 +00:00
code ENHANCEMENT: take into account that older Sqlite can modify the CREATE string and inject single quotes around table names that breaks the db reflection mechanism (happens when the table is renamed) 2010-03-08 23:39:22 +00:00
tests ENHANCEMENT: added a test for checking the time of the webserver against the time of the db server 2010-02-04 05:04:29 +00:00
_config.php BUGFIX: protected default db location MINOR: polished adapter setup 2010-02-08 04:20:09 +00:00
README BUGFIX: protected default db location MINOR: polished adapter setup 2010-02-08 04:20:09 +00:00

SQLite3 Module
==============

Maintainer Contact
------------------
Andreas Piening (Nickname: apiening)
<andreas (at) silverstripe (dot) com>


Requirements
------------
SilverStripe 2.4 or newer


Installation
------------
copy the sqlite3 folder to your project root so that it becomes a sibling of cms, sapphire and co
add this to your _config.php (right after "require_once("conf/ConfigureFromEnv.php");" if you are using _ss_environment.php)

	$databaseConfig['type'] = 'SQLiteDatabase';

you are done!


Config
------
you can set the path for storing your SQLite db file or make use of the :memory: feature in sqlite3/_config.php like this:

	$databaseConfig = array(
		'path' => '/some/path',
		'memory' => true,
	);

make sure the webserver has sufficient privileges to write to that folder and that it is protected from external access.


URL parameter
-------------
If you're trying change a field constrain to NOT NULL on a field that contains NULLs it aborts the action because it might corrupt existing records. In order to perform the action anyway add the URL parameter 'avoidConflict' when running dev/build which temporarily adds a conflict clause to the field spec.
E.g.: http://www.my-project.com/?avoidConflict=1

Tested stacks
-------------
OSX leopard, XAMPP with PHP 5.3.0, SQLite3.6.3
Ubuntu, PHP 5.2.4, SQLite3.4.2
WinXP, XAMPP with PHP 5.3.0, SQLite3.6.16


Open Issues
-----------
- SQLite3 may not work with certain modules as they are using custom SQL statements passed to the DB class directly ;(
- there is no real fulltext search yet and the build-in search engine is not ordering by relevance, check out fts3

Things to note when using SQLite3
---------------------------------
- small, fast, zero configuration, single cross-platform disk file, comes with a CLI and In-Memory database feature
- sometimes the only feasible solution when you don't have access to the usual DBMSs like MySQL
- weakly and dynamically typed although this should have been caught in the adapter
- does not fully implement SQL-92 standard, e.g. the ALTER TABLE syntax is limited to adding and renaming fields
- references for sqlite are e.g. ADOBE (Photoshop Lightroom), Apple (Safari, Mail, iPod, iPhone) Mozilla (Firefox, Thunderbird), Google (Chrome)
- if you are looking for a SQLite client for debugging, the SQLite plugin for firefox may be worth a try