Lowdefy
v3.17.2/Connections/SQLite/

SQLite

The Knex connection can be used to connect to a SQLite database.

SQLite is best suited as a development database when used with Lowdefy. Using SQLite in a serverless environment is not recommended, and not supported by the current Lowdefy deployment options. See the example below on how to configure different database connections based on the environment.

Connections

Connection types:

  • Knex

Knex

Properties

  • client: enum: Required - Should be sqlite3 or sqlite to connect to SQLite.
  • connection: object:
    • filename: string: Required - The path to the SQLite file (relative to the project root).
  • useNullAsDefault: boolean: If true, undefined keys are replaced with NULL instead of DEFAULT.

Examples

Specify filename:
connections:
  - id: sqlite
    type: Knex
    properties:
      client: sqlite
      connection:
        filename: ./mydb.sqlite
Different connections in deployment and production environments:
connections:
  - id: knex
    type: Knex
    properties:
      client:
        _secret: KNEX_CLIENT
      connection:
        _json.parse:
          _secret: KNEX_CONNECTION

Environment variables in development:

LOWDEFY_SECRET_KNEX_CLIENT = sqlite
LOWDEFY_SECRET_KNEX_CONNECTION = {"filename": "./mydb.sqlite"}

Environment variables in production:

LOWDEFY_SECRET_KNEX_CLIENT = postgres
LOWDEFY_SECRET_KNEX_CONNECTION = {"user": "dbuser", "host": "database.server.com", "database": "mydb", "password": "secretpassword"}

Requests

Request types:

  • KnexBuilder
  • KnexRaw

KnexBuilder

Properties

  • query: object[]: Required - SQL query builder array. An array of objects, with a single key which is the name of the knex builder function. The value should be an array of arguments to pass to the builder function.
  • tableName: string | object: The name of the table to query from.

Examples

Build a query:
id: knexBuilder
type: KnexBuilder
connectionId: knex
properties:
  query:
    - select:
        - '*'
    - from:
        - users
    - where:
        - name
        - _state: name
Using tableName:
id: knexBuilder
type: KnexBuilder
connectionId: knex
properties:
  tableName: users
  query:
    - select:
        - '*'
    - where:
        - name
        - _state: name
Aliases:
id: knexBuilder
type: KnexBuilder
connectionId: knex
properties:
  tableName:
    a: tableA
    b: tableB
  query:
    - select:
        - aField: 'a.field'
        - bField: 'b.field'
    - limit:
        - 1

KnexRaw

Properties

  • query: string: Required - SQL query string.
  • parameters: string | number | array | object: SQL query parameters.

Examples

Simple raw query:
id: knexRaw
type: KnexRaw
connectionId: knex
properties:
  query: SELECT * FROM "my_table";
Query with named parameters:
id: knexRaw
type: KnexRaw
connectionId: knex
properties:
  query: select * from users where name = :name
  parameters:
    name:
      _state: selected_name
Query with positional parameters:
id: knexRaw
type: KnexRaw
connectionId: knex
properties:
  query: select * from users where name = ?
  parameters:
    - _state: selected_name
Reference a .sql file:
id: knexRaw
type: KnexRaw
connectionId: knex
properties:
  query:
    _ref: my_query.sql