Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

loopback-connector-postgresql

loopbackio40.8kArtistic-2.07.2.0

Loopback PostgreSQL Connector

LoopBack, PostgreSQL, DataSource, Connector

readme

loopback-connector-postgresql

PostgreSQL, is a popular open-source object-relational database. The loopback-connector-postgresql module is the PostgreSQL connector for the LoopBack framework.

The PostgreSQL connector supports both LoopBack 3 and LoopBack 4. For more information, see LoopBack 4 documentation, LoopBack 3 documentation and Module Long Term Support Policy below.

NOTE: The PostgreSQL connector requires PostgreSQL 8.x or 9.x.

Installation

In your application root directory, enter this command to install the connector:

$ npm install loopback-connector-postgresql --save

This installs the module from npm and adds it as a dependency to the application's package.json file.

If you create a PostgreSQL data source using the data source generator as described below, you don't have to do this, since the generator will run npm install for you.

Creating a data source

For LoopBack 4 users, use the LoopBack 4 Command-line interface to generate a DataSource with PostgreSQL connector to your LB4 application. Run lb4 datasource, it will prompt for configurations such as host, post, etc. that are required to connect to a PostgreSQL database.

After setting it up, the configuration can be found under src/datasources/<DataSourceName>.datasource.ts, which would look like this:

const config = {
  name: 'db',
  connector: 'postgresql',
  url: '',
  host:'localhost',
  port: 5432,
  user: 'user',
  password: 'pass',
  database: 'testdb',
};
<summary markdown="span">For LoopBack 3 users</summary>

Use the Data source generator to add a PostgreSQL data source to your application. The generator will prompt for the database server hostname, port, and other settings required to connect to a PostgreSQL database. It will also run the npm install command above for you.

The entry in the application's /server/datasources.json will look like this:

{% include code-caption.html content="/server/datasources.json" %}

"mydb": {
  "name": "mydb",
  "connector": "postgresql"
  "host": "mydbhost",
  "port": 5432,
  "url": "postgres://admin:admin@mydbhost:5432/db1?ssl=false",
  "database": "db1",
  "password": "admin",
  "user": "admin",
  "ssl": false
}

Edit datasources.json to add other properties that enable you to connect the data source to a PostgreSQL database.

Connection Pool Settings

You can also specify connection pool settings in <DataSourceName>.datasource.ts ( or datasources.json for LB3 users). For instance you can specify the minimum and the maximum pool size, and the maximum pool client's idle time before closing the client.

Example of db.datasource.ts:

const config = {
  name: 'db',
  connector: 'postgresql',
  url: '',
  host: 'localhost',
  port: 5432,
  user: 'user',
  password: 'pass',
  database: 'testdb',
  min: 5,
  max: 200,
  idleTimeoutMillis: 60000,
  ssl: false
};

Check out node-pg-pool and node postgres pooling example for more information.

Configuration options

Property Type Description
connector String Connector name, either "loopback-connector-postgresql" or "postgresql"
database String Database name
debug Boolean If true, turn on verbose mode to debug database queries and lifecycle.
host String Database host name
password String Password to connect to database
port Number Database TCP port
url String Use instead of thehost,port,user,password, anddatabaseproperties. For example:'postgres://test:mypassword@localhost:5432/dev'.
username String Username to connect to database
min Integer Minimum number of clients in the connection pool
max Integer Maximum number of clients in the connection pool
idleTimeoutMillis Integer Maximum time a client in the pool has to stay idle before closing it
ssl Boolean Whether to try SSL/TLS to connect to server
defaultIdSort Boolean/String Set to false to disable default sorting on id column(s). Set to numericIdOnly to only apply to IDs with a number type id.
allowExtendedOperators Boolean Set to true to enable PostgreSQL-specific operators such as contains. Learn more in Extended operators below.

NOTE: By default, the 'public' schema is used for all tables.

The PostgreSQL connector uses node-postgres as the driver. For more information about configuration parameters, see node-postgres documentation.

Connecting to UNIX domain socket

A common PostgreSQL configuration is to connect to the UNIX domain socket /var/run/postgresql/.s.PGSQL.5432 instead of using the TCP/IP port. For example:

const config = {
  name: 'db',
  connector: 'postgresql',
  url: '',
  host: '/var/run/postgresql/',
  port: 5432,
  user: 'user',
  password: 'pass',
  database: 'testdb',
  debug: true
};

Defining models

LoopBack allows you to specify some database settings through the model definition and/or the property definition. These definitions would be mapped to the database. Please check out the CLI lb4 model for generating LB4 models. The following is a typical LoopBack 4 model that specifies the schema, table and column details through model definition and property definitions:

@model({
  settings: { postgresql: { schema: 'public', table: 'inventory'} },
})
export class Inventory extends Entity {
  @property({
    type: 'number',
    required: true,
    scale: 0,
    id: 1,
    postgresql: {
      columnName: 'id',
      dataType: 'integer',
      dataLength: null,
      dataPrecision: null,
      dataScale: 0,
      nullable: 'NO',
    },
  })
  id: number;

  @property({
    type: 'string',
    postgresql: {
      columnName: 'name',
      dataType: 'text',
      dataLength: null,
      dataPrecision: null,
      dataScale: null,
      nullable: 'YES',
    },
  })
  name?: string;

  @property({
    type: 'boolean',
    required: true,
    postgresql: {
      columnName: 'available',
      dataType: 'boolean',
      dataLength: null,
      dataPrecision: null,
      dataScale: null,
      nullable: 'NO',
    },
  })
  available: boolean;

  constructor(data?: Partial<User>) {
    super(data);
  }
}
<summary markdown="span">For LoopBack 3 users</summary>

The model definition consists of the following properties.

Property Default Description
name Camel-case of the database table name Name of the model.
options N/A Model level operations and mapping to PostgreSQL schema/table
properties N/A Property definitions, including mapping to PostgreSQL column

For example:

{% include code-caption.html content="/common/models/model.json" %}

{
  "name": "Inventory",
  "options": {
    "idInjection": false,
    "postgresql": {
      "schema": "strongloop",
      "table": "inventory"
    }
  },
  "properties": {
    "id": {
      "type": "String",
      "required": false,
      "length": 64,
      "precision": null,
      "scale": null,
      "postgresql": {
        "columnName": "id",
        "dataType": "character varying",
        "dataLength": 64,
        "dataPrecision": null,
        "dataScale": null,
        "nullable": "NO"
      }
    },
    "productId": {
      "type": "String",
      "required": false,
      "length": 20,
      "precision": null,
      "scale": null,
      "id": 1,
      "postgresql": {
        "columnName": "product_id",
        "dataType": "character varying",
        "dataLength": 20,
        "dataPrecision": null,
        "dataScale": null,
        "nullable": "YES"
      }
    },
    "locationId": {
      "type": "String",
      "required": false,
      "length": 20,
      "precision": null,
      "scale": null,
      "id": 1,
      "postgresql": {
        "columnName": "location_id",
        "dataType": "character varying",
        "dataLength": 20,
        "dataPrecision": null,
        "dataScale": null,
        "nullable": "YES"
      }
    },
    "available": {
      "type": "Number",
      "required": false,
      "length": null,
      "precision": 32,
      "scale": 0,
      "postgresql": {
        "columnName": "available",
        "dataType": "integer",
        "dataLength": null,
        "dataPrecision": 32,
        "dataScale": 0,
        "nullable": "YES"
      }
    },
    "total": {
      "type": "Number",
      "required": false,
      "length": null,
      "precision": 32,
      "scale": 0,
      "postgresql": {
        "columnName": "total",
        "dataType": "integer",
        "dataLength": null,
        "dataPrecision": 32,
        "dataScale": 0,
        "nullable": "YES"
      }
    }
  }
}

To learn more about specifying database settings, please check the section Data Mapping Properties.

Type mapping

See LoopBack 4 types (or LoopBack 3 types) for details on LoopBack's data types.

LoopBack to PostgreSQL types

LoopBack Type PostgreSQL Type
String
JSON
Text
Default
VARCHAR2
Default length is 1024
String[] VARCHAR2[]
Number INTEGER
Date TIMESTAMP WITH TIME ZONE
Boolean BOOLEAN

Besides the basic LoopBack types, as we introduced above, you can also specify the database type for model properties. It would be mapped to the database (see Data Mapping Properties). For example, we would like the property price to have database type double precision in the corresponding table in the database, we have specify it as following:

  @property({
    type: 'number',
    postgresql: {
      dataType: 'double precision',
    },
  })
  price?: number;
<summary markdown="span">For LoopBack 3 users</summary>
"properties": {
    // ..
    "price": {
      "type": "Number",
      "postgresql": {
        "dataType": "double precision",
      }
    },

{% include warning.html content=" Not all database types are supported for operating CRUD operations and queries with filters. For example, type Array cannot be filtered correctly, see GitHub issues: # 441 and # 342. " %}

PostgreSQL types to LoopBack

PostgreSQL Type LoopBack Type
BOOLEAN Boolean
VARCHAR
CHARACTER VARYING
CHARACTER
CHAR
TEXT
String
BYTEA Node.js Buffer object
SMALLINT
INTEGER
BIGINT
DECIMAL
NUMERIC
REAL
DOUBLE PRECISION
FLOAT
SERIAL
BIGSERIAL
Number
DATE
TIMESTAMP
TIMESTAMP WITH TIME ZONE
TIMESTAMP WITHOUT TIME ZONE
TIME
TIME WITH TIME ZONE
TIME WITHOUT TIME ZONE
Date
POINT GeoPoint

Numeric Data Type

Note: The node.js driver for postgres by default casts Numeric type as a string on GET operation. This is to avoid data precision loss since Numeric types in postgres cannot be safely converted to JavaScript Number.

For details, see the corresponding driver issue.

Querying JSON fields

Note The fields you are querying should be setup to use the JSON postgresql data type - see Defining models

Assuming a model such as this:

  @property({
    type: 'number',
    postgresql: {
      dataType: 'double precision',
    },
  })
  price?: number;

You can query the nested fields with dot notation:

CustomerRepository.find({
  where: {
    address.state: 'California',
  },
  order: 'address.city',
});

Extended operators

PostgreSQL supports the following PostgreSQL-specific operators:

Please note extended operators are disabled by default, you must enable them at datasource level or model level by setting allowExtendedOperators to true.

Operator contains

The contains operator allow you to query array properties and pick only rows where the stored value contains all of the items specified by the query.

The operator is implemented using PostgreSQL array operator @>.

Note The fields you are querying must be setup to use the postgresql array data type - see Defining models above.

Assuming a model such as this:

@model({
  settings: {
    allowExtendedOperators: true,
  }
})
class Post {
  @property({
    type: ['string'],
    postgresql: {
      dataType: 'varchar[]',
    },
  })
  categories?: string[];
}

You can query the tags fields as follows:

const posts = await postRepository.find({
  where: {
    {
      categories: {'contains': ['AA']},
    }
  }
});

Operator containedBy

Inverse of the contains operator, the containedBy operator allow you to query array properties and pick only rows where the all the items in the stored value are contained by the query.

The operator is implemented using PostgreSQL array operator <@.

Note The fields you are querying must be setup to use the postgresql array data type - see Defining models above.

Assuming a model such as this:

@model({
  settings: {
    allowExtendedOperators: true,
  }
})
class Post {
  @property({
    type: ['string'],
    postgresql: {
      dataType: 'varchar[]',
    },
  })
  categories?: string[];
}

You can query the tags fields as follows:

const posts = await postRepository.find({
  where: {
    {
      categories: {'containedBy': ['AA']},
    }
  }
});

Operator containsAnyOf

The containsAnyOf operator allow you to query array properties and pick only rows where the any of the items in the stored value matches any of the items in the query.

The operator is implemented using PostgreSQL array overlap operator &&.

Note The fields you are querying must be setup to use the postgresql array data type - see Defining models above.

Assuming a model such as this:

@model({
  settings: {
    allowExtendedOperators: true,
  }
})
class Post {
  @property({
    type: ['string'],
    postgresql: {
      dataType: 'varchar[]',
    },
  })
  categories?: string[];
}

You can query the tags fields as follows:

const posts = await postRepository.find({
  where: {
    {
      categories: {'containsAnyOf': ['AA']},
    }
  }
});

Operator match

The match operator allows you to perform a full text search using the @@ operator in PostgreSQL.

Assuming a model such as this:

@model({
  settings: {
    allowExtendedOperators: true,
  }
})
class Post {
  @property({
    type: 'string',
  })
  content: string;
}

You can query the content field as follows:

const posts = await postRepository.find({
  where: {
    {
      content: {match: 'someString'},
    }
  }
});

Discovery and auto-migration

Model discovery

The PostgreSQL connector supports model discovery that enables you to create LoopBack models based on an existing database schema. Once you defined your datasource:

(See database discovery API for related APIs information)

Auto-migration

The PostgreSQL connector also supports auto-migration that enables you to create a database schema from LoopBack models.

For example, based on the following model, the auto-migration method would create/alter existing customer table under public schema in the database. Table customer would have two columns: name and id, where id is also the primary key and has the default value SERIAL as it has definition of type: 'Number' and generated: true:

@model()
export class Customer extends Entity {
  @property({
    id: true,
    type: 'Number',
    generated: true
  })
  id: number;

  @property({
    type: 'string'
  })
  name: string;
}

By default, tables generated by the auto-migration are under public schema and named in lowercase.

Besides the basic model metadata, LoopBack allows you to specify part of the database schema definition via the property definition, which would be mapped to the database.

For example, based on the following model, after running the auto-migration script, a table named CUSTOMER under schema market will be created. Moreover, you can also have different names for your property and the corresponding column. In the example, by specifying the column name, the property name will be mapped to the customer_name column. This is useful when your database has a different naming convention than LoopBack (camelCase).

@model(
  settings: {
    postgresql: {schema: 'market', table: 'CUSTOMER'},
  }
)
export class Customer extends Entity {
  @property({
    id: true,
    type: 'Number',
    generated: true
  })
  id: number;

  @property({
    type: 'string',
    postgresql: {
      columnName: 'customer_name'
    }
  })
  name: string;
}

For how to run the script and more details:

(See LoopBack auto-migrate method for related APIs information)

Here are some limitations and tips:

  • If you defined generated: true in the id property, it generates integers by default. For auto-generated uuid, see Auto-generated id property
  • Only the id property supports the auto-generation setting generated: true for now
  • Auto-migration doesn't create foreign key constraints by default. But they can be defined through the model definition. See Auto-migrate with foreign keys
  • Destroying models may result in errors due to foreign key integrity. First delete any related models by calling delete on models with relationships.

Auto-migrate/Auto-update models with foreign keys

Foreign key constraints can be defined in the model definition.

Note: The order of table creation is important. A referenced table must exist before creating a foreign key constraint.

Define your models and the foreign key constraints as follows:

customer.model.ts:

@model()
export class Customer extends Entity {
  @property({
    id: true,
    type: 'Number',
    generated: true
  })
  id: number;

  @property({
    type: 'string'
  })
  name: string;
}

order.model.ts:

@model({
  settings: {
    foreignKeys: {
      fk_order_customerId: {
        name: 'fk_order_customerId',
        entity: 'Customer',
        entityKey: 'id',
        foreignKey: 'customerId',
        onDelete: 'CASCADE',
        onUpdate: 'SET NULL'
      },
    },
  })
export class Order extends Entity {
  @property({
    id: true,
    type: 'Number',
    generated: true
  })
  id: number;

  @property({
    type: 'string'
  })
  name: string;

  @property({
    type: 'Number'
  })
  customerId: number;
}
<summary markdown="span">For LoopBack 3 users</summary>
({
  "name": "Customer",
  "options": {
    "idInjection": false
  },
  "properties": {
    "id": {
      "type": "Number",
      "id": 1
    },
    "name": {
      "type": "String",
      "required": false
    }
  }
},
{
  "name": "Order",
  "options": {
    "idInjection": false,
    "foreignKeys": {
      "fk_order_customerId": {
        "name": "fk_order_customerId",
        "entity": "Customer",
        "entityKey": "id",
        "foreignKey": "customerId",
        "onDelete": "CASCADE",
        "onUpdate": "SET NULL"
      }
    }
  },
  "properties": {
    "id": {
      "type": "Number"
      "id": 1
    },
    "customerId": {
      "type": "Number"
    },
    "description": {
      "type": "String",
      "required": false
    }
  }
})

{% include tip.html content=" Removing or updating the value of `foreignKeys` will be updated or delete or update the constraints in the db tables. If there is a reference to an object being deleted then the `DELETE` will fail. Likewise if there is a create with an invalid FK id then the `POST` will fail. The `onDelete` and `onUpdate` properties are optional and will default to `NO ACTION`. " %}

Auto-generated ids

Auto-migrate supports the automatic generation of property values for the id property. For PostgreSQL, the default id type is integer. Thus if you have generated: true in the id property, it generates integers by default:

{
  id: true,
  type: 'Number',
  required: false,
  generated: true // enables auto-generation
}

It is common to use UUIDs as the primary key in PostgreSQL instead of integers. You can enable it with either the following ways:

  • use uuid that is generated by your LB application by setting defaultFn: uuid:
  @property({
    id: true,
    type: 'string'
    defaultFn: 'uuid',
    // generated: true,  -> not needed
  })
  id: string;
  • use PostgreSQL built-in (extension and) uuid functions:
  @property({
  id: true,
  type: 'String',
  required: false,
  // settings below are needed
  generated: true,
  useDefaultIdType: false,
  postgresql: {
    dataType: 'uuid',
  },
})
  id: string;

The setting uses uuid-ossp extension and uuid_generate_v4() function as default.

If you'd like to use other extensions and functions, you can do:

  @property({
  id: true,
  type: 'String',
  required: false,
  // settings below are needed
  generated: true,
  useDefaultIdType: false,
  postgresql: {
    dataType: 'uuid',
    extension: 'myExtension',
    defaultFn: 'myuuid'
  },
})
  id: string;

WARNING: It is the users' responsibility to make sure the provided extension and function are valid.

Module Long Term Support Policy

This module adopts the Module Long Term Support (LTS) policy, with the following End Of Life (EOL) dates:

Version Status Published EOL
5.x Current Apr 2020 Apr 2023 (minimum)
3.x Active LTS Mar 2017 Apr 2022

Learn more about our LTS plan in docs.

Running tests

Own instance

If you have a local or remote PostgreSQL instance and would like to use that to run the test suite, use the following command:

  • Linux
POSTGRESQL_HOST=<HOST> POSTGRESQL_PORT=<PORT> POSTGRESQL_USER=<USER> POSTGRESQL_PASSWORD=<PASSWORD> POSTGRESQL_DATABASE=<DATABASE> CI=true npm test
  • Windows
SET POSTGRESQL_HOST=<HOST> SET POSTGRESQL_PORT=<PORT> SET POSTGRESQL_USER=<USER> SET POSTGRESQL_PASSWORD=<PASSWORD> SET POSTGRESQL_DATABASE=<DATABASE> SET CI=true npm test

Docker

If you do not have a local PostgreSQL instance, you can also run the test suite with very minimal requirements.

  • Assuming you have Docker installed, run the following script which would spawn a PostgreSQL instance on your local:
source setup.sh <HOST> <PORT> <USER> <PASSWORD> <DATABASE>

where <HOST>, <PORT>, <USER>, <PASSWORD> and <DATABASE> are optional parameters. The default values are localhost, 5432, root, pass and testdb respectively.

  • Run the test:
npm test

changelog

2025-04-14, Version 7.2.0

  • chore(deps): update dependency loopback-datasource-juggler to v5.1.7 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v5.1.6 (renovate[bot])

  • feat: query to fetch unique columns (Muhammad Aaqil)

  • chore(deps): update dependency sinon to v20 (renovate[bot])

  • chore(deps): update dependency sinon to v19.0.5 (renovate[bot])

2025-03-18, Version 7.1.11

  • fix(deps): update dependency pg to v8.14.1 (renovate[bot])

  • fix(deps): update dependency pg to v8.14.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v19.8.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v19.8.0 (renovate[bot])

  • chore: add node.js 22 to CI (dhmlau)

  • fix: remove error event listener before releasing connection back to pool (vinod-hansda)

  • fix(deps): update dependency uuid to v11.1.0 (renovate[bot])

  • fix(deps): update dependency pg to v8.13.3 (renovate[bot])

2025-02-12, Version 7.1.10

  • fix(deps): update dependency pg to v8.13.2 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v19.7.1 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v19.7.1 (renovate[bot])

  • chore(deps): update dependency mocha to v11.1.0 (renovate[bot])

2025-01-14, Version 7.1.9

  • fix(deps): update dependency uuid to v11.0.5 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v19.6.1 (renovate[bot])

  • fix(deps): update dependency debug to v4.4.0 (renovate[bot])

2024-12-05, Version 7.1.8

  • chore(deps): update dependency loopback-datasource-juggler to v5.1.3 (renovate[bot])

  • chore(deps): update dependency mocha to v11 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v6.1.12 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v19.6.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v19.6.0 (renovate[bot])

2024-11-12, Version 7.1.7

  • fix(deps): update dependency loopback-connector to v6.1.11 (renovate[bot])

  • fix(deps): update dependency uuid to v11 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v5.1.2 (renovate[bot])

  • chore(deps): update node.js to v22 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

  • fix(deps): update dependency pg to v8.13.1 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v6.1.10 (renovate[bot])

2024-10-11, Version 7.1.6

  • chore(deps): update dependency loopback-datasource-juggler to v5.1.1 (renovate[bot])

  • chore(deps): update dependency sinon to v19 (renovate[bot])

  • chore(deps): update dependency eslint to v8.57.1 (renovate[bot])

  • fix(deps): update dependency pg to v8.13.0 (renovate[bot])

  • chore(deps): update dependency sinon to v18.0.1 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v19.5.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v19.5.0 (renovate[bot])

2024-09-09, Version 7.1.5

  • chore(deps): update dependency loopback-datasource-juggler to v5.1.0 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v6.1.9 (renovate[bot])

  • fix(deps): update dependency debug to v4.3.7 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

  • fix(deps): update dependency async to v3.2.6 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v19.4.1 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v19.4.1 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v6.1.8 (renovate[bot])

2024-08-12, Version 7.1.4

  • chore(deps): update dependency loopback-datasource-juggler to v5.0.12 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v19.4.0 (renovate[bot])

  • chore(deps): update dependency mocha to v10.7.3 (renovate[bot])

  • fix(deps): update dependency debug to v4.3.6 (renovate[bot])

  • chore(deps): update dependency mocha to v10.7.0 (renovate[bot])

2024-07-04, Version 7.1.3

  • chore(deps): update dependency loopback-datasource-juggler to v5.0.11 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v6.1.7 (renovate[bot])

  • chore(deps): update dependency mocha to v10.6.0 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

  • fix(deps): update dependency uuid to v10 (renovate[bot])

  • chore(deps): update dependency mocha to v10.5.2 (renovate[bot])

2024-06-06, Version 7.1.2

  • fix(deps): update dependency loopback-connector to v6.1.6 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v5.0.10 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

2024-05-15, Version 7.1.1

  • chore(deps): update dependency sinon to v18 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v5.0.9 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v6.1.5 (renovate[bot])

  • chore(deps): update dependency sinon to v17.0.2 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v19.3.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v19.2.2 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v19.2.2 (renovate[bot])

2024-04-08, Version 7.1.0

  • feat(operators): add containedBy and containsAnyOf operators (akshatdubeysf)

  • chore(deps): update dependency loopback-datasource-juggler to v5.0.8 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v6.1.4 (renovate[bot])

  • fix(deps): update dependency pg to v8.11.5 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v19.2.1 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v19.1.0 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v5.0.7 (renovate[bot])

2024-03-07, Version 7.0.4

  • fix(deps): update dependency loopback-connector to v6.1.3 (renovate[bot])

  • fix: return auto-increment as generated (Muhammad Aaqil)

  • chore(deps): lock file maintenance (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v19.0.1 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v19 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v19 (renovate[bot])

2024-02-13, Version 7.0.3

  • fix(deps): update dependency loopback-connector to v6.1.2 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v18.6.1 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v18.6.1 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v5.0.6 (renovate[bot])

  • chore(deps): update dependency mocha to v10.3.0 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v18.6.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v18.5.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v18.5.0 (renovate[bot])

2024-01-10, Version 7.0.2

  • fix(deps): update dependency loopback-connector to v6.1.1 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v5.0.5 (renovate[bot])

  • fix: add missing connection error handler in pool, resolving process crash (Quentin Machu)

  • chore(deps): update dependency @commitlint/config-conventional to v18.4.4 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v18.4.4 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

2023-12-07, Version 7.0.1

  • chore(deps): update dependency loopback-datasource-juggler to v5.0.4 (renovate[bot])

  • chore(deps): update dependency eslint to v8.55.0 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v18.4.2 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v18.4.2 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v5.0.3 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v6.0.4 (renovate[bot])

2023-11-13, Version 7.0.0

  • fix: add generated property to model properties (Muhammad Aaqil)

  • chore(deps): update dependency @commitlint/cli to v18 (renovate[bot])

  • chore(deps): update dependency sinon to v17 (renovate[bot])

  • chore: drop support for Node.js 16 and lower (dhmlau)

  • chore(deps): update dependency @commitlint/config-conventional to v18.4.0 (renovate[bot])

  • chore(deps): update actions/setup-node action to v4 (renovate[bot])

  • chore(deps): update dependency eslint to v8.53.0 (renovate[bot])

  • chore(deps): update dependency sinon to v16.1.3 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v18.1.0 (renovate[bot])

  • fix(deps): update dependency async to v3.2.5 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v18 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.8.1 (renovate[bot])

  • chore(deps): update dependency eslint to v8.52.0 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v6.0.3 (renovate[bot])

  • fix(migration): add dbDefault also when altering table (Antonio Ramón Sánchez Morales)

2023-10-16, Version 6.0.9

  • chore(deps): update dependency loopback-datasource-juggler to v5.0.2 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.8.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v17.8.0 (renovate[bot])

  • chore(deps): update dependency eslint to v8.51.0 (renovate[bot])

  • chore(deps): update dependency sinon to v16.1.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.7.2 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v5 (renovate[bot])

  • chore(deps): update dependency sinon to v16 (renovate[bot])

  • chore(deps): update dependency eslint to v8.50.0 (renovate[bot])

2023-09-12, Version 6.0.8

  • fix(deps): update dependency uuid to v9.0.1 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v6.0.2 (renovate[bot])

  • chore(deps): update dependency eslint to v8.49.0 (renovate[bot])

  • chore(deps): update actions/checkout action to v4 (renovate[bot])

  • chore(deps): update dependency eslint to v8.48.0 (renovate[bot])

  • fix(deps): update dependency pg to v8.11.3 (renovate[bot])

  • fix(deps): update dependency strong-globalize to v6.0.6 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v6.0.1 (renovate[bot])

2023-08-14, Version 6.0.7

  • chore(deps): update dependency loopback-datasource-juggler to v4.28.9 (renovate[bot])

  • chore(deps): update dependency eslint to v8.47.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.7.1 (renovate[bot])

  • fix(deps): update dependency pg to v8.11.2 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v17.7.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.7.0 (renovate[bot])

  • chore(deps): update dependency eslint to v8.46.0 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v6 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v17.6.7 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.6.7 (renovate[bot])

  • chore(deps): update dependency eslint to v8.45.0 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v4.28.8 (renovate[bot])

2023-07-11, Version 6.0.6

  • chore(deps): update dependency eslint to v8.44.0 (renovate[bot])

  • fix(deps): update dependency pg to v8.11.1 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v5.3.3 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v4.28.7 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v17.6.6 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.6.6 (renovate[bot])

  • chore(deps): update dependency sinon to v15.2.0 (renovate[bot])

  • chore(deps): update dependency eslint to v8.43.0 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v5.3.2 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v4.28.6 (renovate[bot])

2023-06-13, Version 6.0.5

  • chore(deps): update dependency sinon to v15.1.2 (renovate[bot])

  • chore(deps): update dependency eslint to v8.42.0 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v17.6.5 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.6.5 (renovate[bot])

  • fix(deps): update dependency pg to v8.11.0 (renovate[bot])

  • chore(deps): update dependency sinon to v15.1.0 (renovate[bot])

  • chore(deps): update dependency eslint to v8.41.0 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v4.28.5 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v5.3.1 (renovate[bot])

2023-05-15, Version 6.0.4

  • chore(deps): update dependency eslint to v8.40.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v17.6.3 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.6.3 (renovate[bot])

  • chore(deps): update dependency eslint to v8.39.0 (renovate[bot])

  • chore(deps): update dependency sinon to v15.0.4 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v17.6.1 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.6.1 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v4.28.4 (renovate[bot])

  • chore(deps): update dependency eslint to v8.38.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/config-conventional to v17.6.0 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v5.3.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.6.0 (renovate[bot])

2023-04-13, Version 6.0.3

  • chore(deps): update dependency eslint to v8.37.0 (renovate[bot])

  • chore(deps): update dependency sinon to v15.0.3 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.5.1 (renovate[bot])

  • fix(deps): update dependency pg to v8.10.0 (renovate[bot])

  • fix(deps): update dependency loopback-connector to v5.2.2 (renovate[bot])

  • chore(deps): update dependency eslint to v8.36.0 (renovate[bot])

  • chore(deps): update dependency @commitlint/cli to v17.5.0 (renovate[bot])

  • chore(deps): update dependency loopback-datasource-juggler to v4.28.3 (renovate[bot])

  • chore(deps): lock file maintenance (renovate[bot])

2023-02-02, Version 6.0.2

  • fix: remove deprecated juggler-v3 and juggler-v4 deps folder and test cases (Samarpan Bhattacharya)

  • chore(deps): lock file maintenance (renovate[bot])

2023-01-09, Version 6.0.1

  • chore(deps): lock file maintenance (renovate[bot])

  • chore(deps): update dependency sinon to v15 (renovate[bot])

2022-11-28, Version 6.0.0

  • feat(postgresql): add support for multiple insert in one query using createAll() of connector (Samarpan Bhattacharya)

  • chore(deps): lock file maintenance (renovate[bot])

  • chore: add lock-file maintenance (renovate) (Francisco Buceta)

  • fix(deps): update dependency uuid to v9 (renovate[bot])

  • chore(deps): update dependency eslint to v8 (renovate[bot])

  • chore(deps): update dependency mocha to v10 (renovate[bot])

  • chore: sign off renovatebot PR (Francisco Buceta)

  • ci: run commit-lint job only on PR (Francisco Buceta)

  • test: solution to alphabetical order in github actions (Francisco Buceta)

  • ci: disable fast-fail (Francisco Buceta)

  • chore: remove redundant code (Francisco Buceta)

  • chore: order keys and install @commitlint/cli locally (Francisco Buceta)

  • ci: remove test in NodeJS version 12 and add version 18 (Francisco Buceta)

2022-09-29, Version 5.5.2

  • chore(deps): update actions/setup-node action to v3 (renovate[bot])

  • chore(deps): update actions/checkout action to v3 (renovate[bot])

  • chore(deps): add renovate.json (renovate[bot])

  • fix: crash with blank url (Rifa Achrinza)

2022-08-06, Version 5.5.1

  • fix: improve filter sanitisation (Rifa Achrinza)

  • fix: debug prints the password in plain text (Francisco Buceta)

  • docs: add SECURITY.md (Diana Lau)

  • docs: update coc (Diana Lau)

  • docs: add code of conduct (Diana Lau)

2022-01-13, Version 5.5.0

  • chore: add Rifa and Mario as codeowners (Diana Lau)

  • fix: disregard empty and/or fields (Abhilash Murthy)

  • feat(operators): add fts match operator (Akshat Dubey)

  • chore: move repo to loopbackio org (Diana Lau)

  • Defensively drop constraints during migrations (Chris Kobrzak)

2021-05-03, Version 5.4.0

  • Add on delete options on FK constraints (Quentin Le Bour)

  • ci: switch from Travis to Github Actions (Agnes Lin)

  • Revert "ci: switch travis to github actions" (Miroslav Bajtoš)

  • ci: switch travis to github actions (Francisco Buceta)

2020-12-07, Version 5.3.0

  • fix: enable pool error handling (Matthew Gabeler-Lee)

2020-11-10, Version 5.2.1

  • Ensure order of and/or clauses are preserved (Raymond Feng)

2020-10-06, Version 5.2.0

  • test: clean test for contains operator (Miroslav Bajtoš)

  • test: fix array tests to handle List values (Miroslav Bajtoš)

  • docs: improve README organization (Miroslav Bajtoš)

  • feat: adds 'contains' operator for querying arrays (shubhisood)

2020-09-01, Version 5.1.0

  • update dependencies to latest (Miroslav Bajtoš)

  • fix setup script to not exit calling shell (Miroslav Bajtoš)

  • chore: switch to DCO (Diana Lau)

  • docs: update loopback types link (Agnes Lin)

  • Update .travis.yml (karanssj4)

2020-07-10, Version 5.0.2

  • fix: fix uuid setup (Agnes Lin)

  • fix: fix example prop def (Agnes Lin)

  • fix: use tip.html (Diana Lau)

  • docs: update readme with more lb4 form (Agnes Lin)

2020-05-06, Version 5.0.1

  • Fix serialization of arrays of string in update (#428) (Selim Arsever)

2020-04-21, Version 5.0.0

  • README: add info about LTS policy (Miroslav Bajtoš)

  • Upgrade dev dependencies (Miroslav Bajtoš)

  • [SEMVER-MAJOR] Upgrade pg to 8.0 (Miroslav Bajtoš)

  • Update dependencies (Miroslav Bajtoš)

  • Add Node.js 13.x to Travis CI matrix (Miroslav Bajtoš)

  • Drop support for Node.js 8.x (Miroslav Bajtoš)

  • chore: update strong-globalize version (Diana Lau)

2020-03-19, Version 3.9.1

  • fix readme layout (Agnes Lin)

  • fix README display on the site (Agnes Lin)

  • Exclude 'deps' and '.github' from npm publish (Dominique Emond)

  • fix (Agnes Lin)

  • tests: column should be discovered and mapped (Agnes Lin)

  • fix: DEFAULT for null values in where clause (DEEPAK RAJAMOHAN)

  • fix postgres random ci failure (Agnes Lin)

2020-02-25, Version 3.9.0

  • doc: added readme info on defaultIdSort (Erik de Groot)

  • feat: Added defaultIdSort setting for find method (Erik de Groot)

  • chore: update copyright year (Diana Lau)

2020-01-31, Version 3.8.3

  • add missing package chalk (Agnes Lin)

2020-01-31, Version 3.8.2

  • fix schema name with pascal case (Agnes Lin)

  • chore: update CODEOWNERS file (Agnes Lin)

  • fix: allow string type id to be auto-generated (Agnes Lin)

2019-12-09, Version 3.8.1

  • fix(pool): synchronously release pool connection (Samuel Reed)

  • Handler for with(out) time zone time(stamp) types (Stefano Pirra)

  • chore: improve issue and PR templates (Nora)

  • chore: exclude "good first issues" from stalebot (Miroslav Bajtoš)

  • Fix eslint violations (Miroslav Bajtoš)

2019-09-19, Version 3.8.0

  • chore: set package-lock=false in .npmrc (Aidan Harbison)

  • Extends test structure to cover fix (Viktor Shanin)

  • Fix Index upgrade (Viktor Shanin)

  • fix: jsdoc (#385) (Janny)

  • Enable Travis CI integration (Miroslav Bajtoš)

  • Manually fix remaining linting violations (Miroslav Bajtoš)

  • Auto-fix linting violations (Miroslav Bajtoš)

  • Update eslint to ^6.0.1 (Miroslav Bajtoš)

  • Update dev-dependencies (Miroslav Bajtoš)

2019-06-26, Version 3.7.0

  • chore: update dependencies (Diana Lau)

  • Updated dependency module debug (noctifer)

  • Drop support for Node.js 6 (Miroslav Bajtoš)

  • chore: update copyrights years (Agnes Lin)

  • Run shared tests from both v3 and v4 of juggler (Miroslav Bajtoš)

  • Move mocha config to test/mocha.opts (Miroslav Bajtoš)

  • Improve error messages in autoupdate test (Miroslav Bajtoš)

  • chore: connector flag for no array type support (biniam)

2019-04-05, Version 3.6.1

  • Fix cannot create foreignkey (#371) (Hung)

  • Add regression test (jlawrencecfm)

  • Use canonical index name when dropping (jlawrencecfm)

  • add @elv1s as CODEOWNERS (Diana Lau)

2019-02-08, Version 3.6.0

  • add code comment (elv1s)

  • bug fix for multiple fk (elv1s)

  • Fix timestamp precision force isActual to false (Rafael D. Fito)

2019-01-25, Version 3.5.1

  • Update CODEOWNERS to reflect the current status (Diana Lau)

  • add support for create and delete foreign key (elv1s)

2018-11-09, Version 3.5.0

  • Fixed line length to pass lint (ataft)

  • Fix hard-coded "pkName" column in queries (ataft)

  • Modify type 'double precision' to map to float (ataft)

2018-07-16, Version 3.4.0

  • Drop Node 4 in CI (Diana Lau)

  • [WebFM] cs/pl/ru translation (candytangnb)

2018-05-25, Version 3.3.2

  • rebase the code to latest master (sahil)

  • typo (Lambdac0re)

2018-04-26, Version 3.3.1

  • update CODEOWNERS (Diana Lau)

  • linting updates (Tim Jones)

  • add support for UPDATE RETURNING (Tim Jones)

2018-01-12, Version 3.3.0

  • Revert "4.0.0" (Miroslav Bajtoš)

2018-01-12, Version 4.0.0

  • Include the SSL Property (ataft)

2017-11-13, Version 3.2.0

  • chore:update license (Diana Lau)

  • Add basic json query support (Zak Barbuto)

  • update dependencies (Diana Lau)

  • CODEOWNERS: add zbarbuto (Miroslav Bajtoš)

2017-09-26, Version 3.1.0

  • Upgrade to pg@7. (Samuel Reed)

  • Add test for transaction support in count() (Jürg Lehni)

  • Add stalebot configuration (Kevin Delisle)

2017-08-21, Version 3.0.3

  • Create Issue and PR Templates (#291) (Sakib Hasan)

  • Allow migration on schema (ssh24)

  • Update translated strings Q3 2017 (Allen Boone)

  • Fix integer data type (ssh24)

  • update translation file (Diana Lau)

  • Override discover model props (ssh24)

  • Add test cases (ssh24)

  • Add CODEOWNER file (Diana Lau)

  • Allow typecasting upon altering prop (ssh24)

  • Add missing require (Zak Barbuto)

  • Revert change to commit and rollback (Zak Barbuto)

  • Revert transaction tracking (Zak Barbuto)

  • Update transaction test (Zak Barbuto)

  • Remove require of Transaction (Zak Barbuto)

  • Avoid connector for transaction tracking (Zak Barbuto)

  • Fix operations directly on model #258 (Zak Barbuto)

  • Add missing return (Zak Barbuto)

  • Add test for #258 (Zak Barbuto)

2017-07-17, Version 3.0.2

  • Use loopback-connector@^4.2.2 (Kevin Delisle)

  • Allow to debug queries only (ssh24)

  • Fix geo operator (ssh24)

  • Add docs on numeric data type (ssh24)

  • Add execute permission to setup.sh (Raymond Feng)

  • Correct a to closing tag (Marco Galassi)

  • Add connection pool settings doc to README.md (Marco Galassi)

  • clean up postwithdate (ptrblgh)

  • add tests for future regression (ptrblgh)

  • add missing assertion (ptrblgh)

  • add explicit typecasts to pattern matching (ptrblgh)

  • Fix docker setup (#257) (Sakib Hasan)

2017-05-15, Version 3.0.1

  • Add docker setup (#256) (Sakib Hasan)

  • Allow explicit numeric datatype (#254) (Sakib Hasan)

  • Allow non-id serial properties (#198) (zbarbuto)

  • Revert PR #246 (#248) (Sakib Hasan)

  • Add loopback-connector as peer dependencies (#246) (Russ Tyndall)

  • Fix operations on ended transactions (zbarbuto)

  • dbdefaults: Cleanup InvalidDefault def after test (Kevin Delisle)

  • Reuse the data source to avoid too many clients (Raymond Feng)

2017-03-31, Version 3.0.0

  • Remove console.log (Raymond Feng)

  • Monkey patch generic-pool to work through errors (Russ Tyndall)

  • Fix the escape char (Raymond Feng)

  • Upgrade to loopback-connector@4.x (Loay)

  • Add checkFieldAndIndex for table status (#228) (Sakib Hasan)

  • Refactor migration methods (ssh24)

  • Fix code style inconsistencies in ilike tests (Alireza Ahmadi)

  • Improve tests for better code style consistency (Alireza Ahmadi)

  • Add tests for pattern matching operators (Alireza Ahmadi)

  • Add ILIKE functionality (Alireza Ahmadi)

  • Refactor discovery models (Loay Gewily)

  • merge in #216 (gregdingle)

  • Fix unit tests (ssh24)

  • Fix linting errors and unnesssary changes. (Diana Lau)

  • remove done() calls in test (gregdingle)

  • Added test. Ran run-tests. (gregdingle)

  • Fix bug where settings for pg-pool were dropped (Greg Dingle)

  • Update README with correct doc links, etc (Amir Jafarian)

  • Add test for bulk transactions (Zak Barbuto)

  • Use pg callback over connection.release (#109) (Zak Barbuto)

  • Use pool.pool.release over pool.release (#109) (Zak Barbuto)

  • Add test env information to README (Zak Barbuto)

  • update README for local postgres setup (Diana Lau)

  • Update postgresql.js (tmclouisluk)

  • Fix bug when using postgresql 8.x (tmclouisluk)

  • Replicate new issue_template from loopback (Siddhi Pai)

  • Replicate issue_template from loopback repo (Siddhi Pai)

  • Update LB connector version (Loay)

  • Use unique param for affectedRows (Loay)

  • Move info from docs into README (#199) (Rand McKinney)

  • Update paid support URL (Siddhi Pai)

  • Start 3.x + drop support for Node v0.10/v0.12 (siddhipai)

  • Drop support for Node v0.10 and v0.12 (Siddhi Pai)

  • Start the development of the next major version (Siddhi Pai)

2016-10-14, Version 2.7.0

  • Add connectorCapabilities global object (#179) (Nicholas Duffy)

  • Accept PGDATABASE env var in test/init.js (#178) (Simon Ho)

  • Remove unused prefix from test env vars (#176) (Simon Ho)

  • Fix #123: Set default value during autoupdate. (#167) (Samuel Reed)

  • Update translation files - round#2 (#170) (Candy)

  • Add translated files (gunjpan)

  • Update deps to loopback 3.0.0 RC (Miroslav Bajtoš)

  • Use juggler@3 for running tests (Candy)

  • Add eslint infrastructure (Loay)

  • Revert "Add eslint infrastructure" (Loay)

  • Fix CI Failure (Loay)

  • test: accept more env vars on CI (Ryan Graham)

  • test: use 'emptytest' database as default (Ryan Graham)

  • test: seed DB with test schema before running (Ryan Graham)

  • test: separate dbconfig from datasource (Ryan Graham)

  • test: replace tables.sql with full schema dump (Ryan Graham)

  • Refactor (jannyHou)

  • Upgrade version (jannyHou)

  • Globalize discover.js (jannyHou)

  • Update URLs in CONTRIBUTING.md (#150) (Ryan Graham)

2016-06-23, Version 2.6.3

  • Fix the datasource init (Raymond Feng)

2016-06-23, Version 2.6.2

2016-06-23, Version 2.6.1

2016-06-22, Version 2.6.0

  • Upgrade to pg 6.0.0 (Raymond Feng)

2016-06-21, Version 2.5.0

  • update/insert copyright notices (Ryan Graham)

  • relicense as Artistic-2.0 only (Ryan Graham)

  • Lazy connect when booting from swagger (juehou)

  • Fix typo in SET NOT NULL migration. (Jonas Peter Hyatt)

  • Reverts previous change (jimmylimm)

  • Revert "Moves the default back to VARCHAR(1024) from text" (James Limmer)

  • Moves the default back to VARCHAR(1024) from text (James Limmer)

    • Adds support for long JSON strings when using embedOne from other models. - Converts JSON columns to TEXT for extra length allowance (James Limmer)

2016-02-19, Version 2.4.1

  • Remove sl-blip from dependencies (Miroslav Bajtoš)

  • Upgrade should to 8.0.2 (Simon Ho)

  • Seperate env variable for test db (cgole)

  • changed USERNAME to USER (cgole)

  • add CI DB server (cgole)

2015-11-07, Version 2.4.0

  • Refer to licenses with a link (Sam Roberts)

  • Use strongloop conventions for licensing (Sam Roberts)

  • Fix the error handling for createTable (Raymond Feng)

  • Add index implementation (Mark Riedesel)

2015-07-30, Version 2.3.0

  • Clean up regexp operator tests (Simon Ho)

  • Fix regexp operator test (Simon Ho)

  • Add regexp operator tests (Simon Ho)

  • Add support for RegExp operator (Simon Ho)

  • Clean up buildExpression function (Simon Ho)

  • Remove NOTICE that doesn't apply (Raymond Feng)

2015-07-14, Version 2.2.1

  • include the length of the column if its a char type. change character varying to varchar to match columnDataType method (Brandon Cooper)

2015-06-12, Version 2.2.0

  • Make sure UTC is used for date (Raymond Feng)

  • Add a test case for date type (Raymond Feng)

2015-05-18, Version 2.1.0

  • Update deps (Raymond Feng)

  • Add transaction support (Raymond Feng)

2015-05-13, Version 2.0.0

  • Update deps (Raymond Feng)

  • Refactor the connector impl to use base sql connector (Raymond Feng)

2015-05-11, Version 1.7.1

  • Make sure err is reported (Raymond Feng)

2015-04-02, Version 1.7.0

  • Update deps (Raymond Feng)

  • Return count when updating or deleting models (Simon Ho)

  • Add instructions to running tests section (Simon Ho)

2015-02-28, Version 1.6.1

  • Fix the conversion of point types due to driver changes (Raymond Feng)

2015-02-20, Version 1.6.0

  • Upgrade deps (Raymond Feng)

2015-01-28, Version 1.5.0

  • added more tests to cover changes introduced by "filter undefined fields" commit (Andrey Loukhnov)

  • code formatting settings for multiple IDEs (Andrey Loukhnov)

  • Fix merging issue (Raymond Feng)

  • Typecast lat/lng values to number. (Berkeley Martinez)

  • Add support for GeoPoint type (Raymond Feng)

2015-01-23, Version 1.4.0

  • Remove the usage of `CREATE SCHEMA IF NOT EXISTS' for compatibility (Raymond Feng)

  • one-line fix for #51 (Andrey Loukhnov)

  • basic tests for PR #53 (Andrey Loukhnov)

  • basic tests for PR #54 (Andrey Loukhnov)

  • provide database column default values via Loopback model description (Andrey Loukhnov)

  • autocreate schema if it does not exist during migration/update (Andrey Loukhnov)

  • Use connection pooling from the driver (Raymond Feng)

2015-01-09, Version 1.3.0

  • Escape number literals to avoid SQL injection (Raymond Feng)

  • Fix bad CLA URL in CONTRIBUTING.md (Ryan Graham)

2014-12-13, Version 1.2.2

  • allow false value for BOOLEAN NOT NULL column (slively)

  • use null if param is undefined (Adrian Debbeler)

  • added test for updating false values (Adrian Debbeler)

  • allow false values as params (Adrian Debbeler)

2014-12-05, Version 1.2.1

  • Update deps (Raymond Feng)

  • Better handle nullable/required (Raymond Feng)

2014-12-02, Version 1.2.0

  • Bump version (Raymond Feng)

  • Fall back to default upsert implementation (Raymond Feng)

2014-11-27, Version 1.1.5

  • Add contribution guidelines (Ryan Graham)

2014-09-11, Version 1.1.4

  • Bump version (Raymond Feng)

  • Make sure errors are reported during autoupdate/automigrate (Raymond Feng)

2014-08-21, Version 1.1.3

  • Pass connection errors to callback (Miroslav Bajtoš)

2014-08-20, Version 1.1.2

  • Bump version (Raymond Feng)

  • Add ping() (Raymond Feng)

2014-06-27, Version 1.1.1

  • Bump versions (Raymond Feng)

  • Tidy up filter.order parsing (Raymond Feng)

  • Update link to doc (Rand McKinney)

  • Fix primary key discovery (Raymond Feng)

2014-06-23, Version 1.1.0

  • Bump version (Raymond Feng)

  • Remove leading spaces (Raymond Feng)

  • Use base connector and add update support (Raymond Feng)

  • Fix comparison for null/boolean values (Raymond Feng)

  • Update postgresql.js (kesavkolla)

2014-05-29, Version 1.0.4

  • Bump version (Raymond Feng)

  • Update deps (Raymond Feng)

  • Use pg.js instead of pg to avoid dependency on native client bindings (Samuel Reed)

  • Extract property names in _categorizeProperties() (Raymond Feng)

  • Fix the return of id (Raymond Feng)

  • Modified all create/save/updateOrCreate to support parameterized queries. This will eliminate the SQL Injection attack and also provide better handling of data types and nulls. Moved string concatenations to array push to improve performance. (Kesav Kumar Kolla)

2014-05-16, Version 1.0.3

  • Bump versions (Raymond Feng)

  • Bump version (Raymond Feng)

  • Reconfigure npm test (Raymond Feng)

  • Fix the failing test (Raymond Feng)

  • Fix buildWhere (Raymond Feng)

  • Add support for logical operators (AND/OR) (Raymond Feng)

2014-05-02, Version 1.0.2

  • Bump version (Raymond Feng)

  • Fix boolean data mapping (Raymond Feng)

2014-04-30, Version 1.0.1

  • Bump version (Raymond Feng)

  • Support model level schema settings (Raymond Feng)

  • Add link to wiki docs. (Rand McKinney)

  • Clean up to publish API docs (crandmck)

  • Fix docs.json for API docs (crandmck)

  • Allows options to be passed to PG (Raymond Feng)

2014-04-08, Version 1.0.0

  • First release!