2014-07-10 22:47:18 +02:00
|
|
|
# SQLite3 Module
|
2010-01-14 21:42:43 +01:00
|
|
|
|
2014-02-18 05:59:32 +01:00
|
|
|
[![Build Status](https://travis-ci.org/silverstripe-labs/silverstripe-sqlite3.png?branch=master)](https://travis-ci.org/silverstripe-labs/silverstripe-sqlite3)
|
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
## Maintainer Contact
|
|
|
|
|
2010-01-14 21:42:43 +01:00
|
|
|
Andreas Piening (Nickname: apiening)
|
|
|
|
<andreas (at) silverstripe (dot) com>
|
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
## Requirements
|
|
|
|
|
|
|
|
* SilverStripe 3.2 or newer
|
2010-01-14 21:42:43 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
## Installation
|
2010-01-14 21:42:43 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
* If using composer, run `composer require silverstripe/sqlite3 1.4.*-dev`.
|
|
|
|
* Otherwise, download, unzip and copy the sqlite3 folder to your project root so that it becomes a
|
|
|
|
sibling of `framework/`.
|
2010-01-14 21:42:43 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
## Configuration
|
2010-03-11 00:57:41 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
Either use the installer to automatically install SQLite or add this to your _config.php (right after
|
|
|
|
"require_once("conf/ConfigureFromEnv.php");" if you are using _ss_environment.php)
|
2010-01-14 21:42:43 +01:00
|
|
|
|
2010-02-08 05:20:09 +01:00
|
|
|
$databaseConfig['type'] = 'SQLiteDatabase';
|
2013-04-01 20:24:29 +02:00
|
|
|
$databaseConfig['path'] = "/path/to/my/database/file";
|
2010-01-14 21:42:43 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
Make sure the webserver has sufficient privileges to write to that folder and that it is protected from
|
|
|
|
external access.
|
2010-01-14 21:42:43 +01:00
|
|
|
|
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
### Sample mysite/_config.php
|
2011-01-17 01:14:30 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
```php
|
|
|
|
<?php
|
|
|
|
global $project;
|
|
|
|
$project = 'mysite';
|
2011-01-17 01:14:30 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
global $database;
|
|
|
|
$database = 'SS_mysite';
|
2011-01-17 01:14:30 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
require_once("conf/ConfigureFromEnv.php");
|
2011-01-17 01:14:30 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
global $databaseConfig;
|
2011-01-17 01:14:30 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
$databaseConfig = array(
|
|
|
|
"type" => 'SQLiteDatabase',
|
|
|
|
"server" => 'none',
|
|
|
|
"username" => 'none',
|
|
|
|
"password" => 'none',
|
|
|
|
"database" => $database,
|
|
|
|
"path" => "/path/to/my/database/file",
|
|
|
|
);
|
2011-01-17 01:14:30 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
SSViewer::set_theme('blackcandy');
|
|
|
|
SiteTree::enable_nested_urls();
|
|
|
|
```
|
2011-01-17 01:14:30 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
Again: make sure that the webserver has permission to read and write to the above path (/path/to/my/database/,
|
|
|
|
'file' would be the name of the sqlite db file)
|
2011-01-17 01:14:30 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
## URL parameter
|
2011-01-17 01:14:30 +01:00
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
If you're trying to change a field constrain to NOT NULL on a field that contains NULLs dev/build fails 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.
|
2010-01-24 07:57:42 +01:00
|
|
|
E.g.: http://www.my-project.com/?avoidConflict=1
|
|
|
|
|
2014-07-10 22:47:18 +02:00
|
|
|
## Open Issues
|
|
|
|
|
|
|
|
- SQLite3 is supposed to work with all may not work with certain modules as they are using custom SQL statements
|
|
|
|
passed to the DB class directly ;(
|
2010-01-14 21:42:43 +01:00
|
|
|
- there is no real fulltext search yet and the build-in search engine is not ordering by relevance, check out fts3
|