loopback-connector-sqlite3
Version:
Loopback SQLite3 Connector
116 lines (89 loc) • 3.05 kB
Markdown
# loopback-connector-sqlite3
[SQLite](https://sqlite.org/) is a self-contained, high-reliability, embedded, full-featured, public-domain, SQL database engine. This is the official SQLite3 connector module for the LoopBack framework.
## Installation
Enter the following in the top-level directory of your LoopBack application:
```
$ npm install loopback-connector-sqlite3 --save
```
The `--save` option adds the dependency to the application's `package.json` file.
## Connector settings
Configure the connector with the following data source properties:
* `file`: The path to the database file or `:memory:`
* `debug`: Display debug information. Default is false.
The SQLite3 connector uses [node-sqlite3](https://github.com/mapbox/node-sqlite3) as the driver.
## Model definition for SQLite3
The model definition consists of the following properties:
* name: Name of the model, by default, it's the camel case of the table
* properties: Property definitions, including default value mapping
```json
{"name": "Inventory", "options": {
"idInjection": false,
}, "properties": {
"id": {
"type": "String",
"required": false,
"length": 64,
"precision": null,
"scale": null
},
"productId": {
"type": "String",
"required": false,
"length": 20,
"precision": null,
"scale": null,
"id": 1
},
"locationId": {
"type": "String",
"required": false,
"length": 20,
"precision": null,
"scale": null,
"id": 1
},
"available": {
"type": "Number",
"required": false,
"length": null,
"precision": 32,
"scale": 0
},
"total": {
"type": "Number",
"required": false,
"length": null,
"precision": 32,
"scale": 0
},
"createdOn": {
"type": "Date",
"required": false,
"sqlite3": {
"dbDefault": "now"
}
}
}}
```
## Type Mapping
| LoopBack type | Mapped to SQLite3 type |
|-----|-----|
| Number| Primary key stored as INTEGER, others as REAL |
| Boolean | INTEGER 1 or 0 |
| Date | INTEGER (ms since Jan 01 1970 00:00:00 0000) |
| String | ? |
| Complex types: GeoPoint, Point, List, Array, Object, and sub-models | TEXT in JSON format |
| JSON | TEXT |
SQLite3 does not enforce types. Any data can be stored in any column regardless of definiton.
This connector attempts to check for invalid Date, Number and JSON types.
## Unsupported features
### Discovering Models
The SQLite3 connector does not currently support model discovery.
### Auto Migrate / Auto Update
The SQLite3 connector does not currently support auto-migrate or auto-upgrade.
## Running tests
The tests in this repository are mainly integration tests, meaning you will need
to run them using our preconfigured test server.
1. Ask a core developer for instructions on how to set up test server
credentials on your machine
2. `npm test`