@keyv/postgres
PostgreSQL storage adapter for Keyv
PostgreSQL storage adapter for Keyv.
Requires Postgres 9.5 or newer for ON CONFLICT
support to allow performant upserts. Why?
Install
npm install --save keyv @keyv/postgres
Usage
import Keyv from 'keyv';
import KeyvPostgres from '@keyv/postgres';
const keyv = new Keyv(new KeyvPostgres('postgresql://user:pass@localhost:5432/dbname'));
keyv.on('error', handleConnectionError);
You can specify the table
option.
e.g:
const keyv = new Keyv(new KeyvPostgres('postgresql://user:pass@localhost:5432/dbname'), { table: 'cache' });
You can specify the schema
option (default is public
).
e.g:
const keyv = new Keyv(new KeyvPostgres('postgresql://user:pass@localhost:5432/dbname'), { schema: 'keyv' });
You can also use a helper function to create Keyv
with KeyvPostgres
store.
import {createKeyv} from '@keyv/postgres';
const keyv = createKeyv({ uri: 'postgresql://user:pass@localhost:5432/dbname', table: 'cache', schema: 'keyv' });
Testing
When testing you can use our docker compose
postgresql instance by having docker installed and running. This will start a postgres server, run the tests, and stop the server:
At the root of the Keyv mono repo:
pnpm test:services:start
To just test the postgres adapter go to the postgres directory (packages/postgres) and run:
pnpm test