Skip to content

Repository files navigation

@plotdb/sharedb-postgres

PostgreSQL database adapter for sharedb. This driver can be used both as a snapshot store and oplog.

Doesn't support queries (yet?).

Moderately experimental. (This drives Synaptograph's backend, and @nornagon hasn't noticed any issues so far.)

Note about versioning

This is a fork from the original sharedb-postgres and its relative forks (see billwashere, zbryikt. It seems to have been not maintained for a long time since 2018, Thus we decide to fork it and maintain it as @plotdb/sharedb-postgre.

Installation

npm i @plotdb/sharedb-postgres

Requirements

Due to the fix to resolve high concurency issues Postgres 9.5+ is now required.

Migrating older versions

Older versions of this adaptor used the data type json. You will need to alter the data type prior to using if you are upgrading.

ALTERTABLE ops
ALTER COLUMN operation
SET DATA TYPE jsonb
USING operation::jsonb;
ALTERTABLE snapshots
ALTER COLUMN data
SET DATA TYPE jsonb
USING data::jsonb;

Usage

sharedb-postgres-jsonb wraps native node-postgres, and it supports the same configuration options.

To instantiate a sharedb-postgres wrapper, invoke the module and pass in your PostgreSQL configuration as an argument or use environmental arguments.

For example using environmental arugments:

vardb=require('@plotdb/sharedb-postgres')();varbackend=require('sharedb')({db: db})

Then executing via the command line

PGUSER=dbuser PGPASSWORD=secretpassword PGHOST=database.server.com PGDATABASE=mydb PGPORT=5433 npm start

Example using an object

vardb=require('@plotdb/sharedb-postgres')({host: 'localhost',database: 'mydb'});varbackend=require('sharedb')({db: db})

Error codes

PostgreSQL errors are passed back directly.

Changelog

Note that version 3.0.0 introduces breaking changes in how you specify connection parameters. See the changelog for more info.

About

PostgreSQL adapter for ShareDB. Original repo at github:share/sharedb-postgres.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages