Go to file
NightjarNZ 0efd40e5c2 FIX correct handwritten logic for transactions to use new API instead
Code in the field alteration logic had a queries defiend as strings to
begin and commit transactions involve with changing table or column names.
This was causing fatal errors as BEGIN is not a valid keyword within
a trasaction (see SQLite documentation excerpt below).

A new api has been introduced to deal with transactions programmatically,
and this module was updated to support this a few months ago. This is a
tidy up of some missed portions - consuming this API which correctly uses
SAVEPOINT when a nested transaction is required automatically.

https://www.sqlite.org/lang_transaction.html
Transactions created using BEGIN...COMMIT do not nest. For nested
transactions, use the SAVEPOINT and RELEASE commands.
2018-10-09 22:22:53 +13:00
_config Upgrade for silverstripe namespaces 2016-09-08 15:41:17 +12:00
code FIX correct handwritten logic for transactions to use new API instead 2018-10-09 22:22:53 +13:00
_config.php Upgrade for silverstripe namespaces 2016-09-08 15:41:17 +12:00
_configure_database.php Update config / code styles for 4.0 2017-11-23 14:11:10 +13:00
_register_database.php Update config / code styles for 4.0 2017-11-23 14:11:10 +13:00
.editorconfig Added standard .editorconfig file 2015-12-17 10:06:47 +13:00
.gitattributes Added standard .gitattributes file 2016-01-16 19:32:49 +13:00
.scrutinizer.yml Added standard Scrutinizer config 2016-03-23 23:18:23 +13:00
.travis.yml Update config / code styles for 4.0 2017-11-23 14:11:10 +13:00
.upgrade.yml API Apply SilverStripe\SQLite namespace to module 2016-06-29 13:55:45 +12:00
code-of-conduct.md Added standard code of conduct file 2016-02-16 11:42:22 +13:00
composer.json Update 2 branch alias to 2.2 2017-11-28 10:50:04 +13:00
LICENSE Create LICENSE 2013-09-02 21:20:35 +12:00
phpcs.xml.dist Update config / code styles for 4.0 2017-11-23 14:11:10 +13:00
phpunit.xml.dist Travis setup 2017-10-10 15:10:30 +01:00
README.md Add supported module badge to readme 2018-06-15 17:49:06 +12:00

SQLite3 Module

Build Status SilverStripe supported module

Maintainer Contact

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

Requirements

  • SilverStripe 4.0 or newer

Installation

  • Install using composer with composer require silverstripe/sqlite3 ^2.

Configuration

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)

$databaseConfig['type'] = 'SQLite3Database';
$databaseConfig['path'] = "/path/to/my/database/file";

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

Sample mysite/_config.php

<?php
global $project;
$project = 'mysite';

global $database;
$database = 'SS_mysite';

require_once("conf/ConfigureFromEnv.php");

global $databaseConfig;
$databaseConfig = array(
	"type" => 'SQLite3Database',
	"server" => 'none',
	"username" => 'none',
	"password" => 'none',
	"database" => $database,
	"path" => "/path/to/my/database/file",
);

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)

URL parameter

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. E.g.: http://www.my-project.com/?avoidConflict=1

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 ;(
  • there is no real fulltext search yet and the build-in search engine is not ordering by relevance, check out fts3