@plotdb/sharedb-postgres v4.0.1
@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
.
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.
ALTER TABLE ops
ALTER COLUMN operation
SET DATA TYPE jsonb
USING operation::jsonb;
ALTER TABLE 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:
var db = require('sharedb-postgres')();
var backend = 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
var db = require('sharedb-postgres')({host: 'localhost', database: 'mydb'});
var backend = 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.