Skip to content

klaemo/postgres-watcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Apr 14, 2015
b306a84 · Apr 14, 2015

History

13 Commits
Apr 9, 2015
Apr 8, 2015
Apr 14, 2015
Apr 8, 2015
Apr 9, 2015
Apr 14, 2015
Apr 9, 2015

Repository files navigation

postgres-watcher Build Status

NPM

Watches your PostgreSQL DB for changes. Before using this module you need to set up some triggers, for example with postgres-triggers.

Heavily inspired by this blog post by @fritzy.

This module is in its early stages. Feedback and PRs welcome!

Install

npm i postgres-watcher

Usage (API)

This module is basically an event emitter. It doesn't make any assumption about your trigger payload, except that it should be a JSON object.

const Watcher = require('postgres-watcher')
const watcher = Watcher({
  db: 'postgres://foo@localhost:5432/db',
  channel: 'table_update', // optional
  
  // optional filter function.
  // only payloads which return a truthy value 
  // will later emit a 'change' event
  filter: function (payload) { return payload.id >= 42 }
})

// listen for changes
watcher.on('change', function (change) {
  console.log(change) // { id: 1, type: 'INSERT', table: 'foo', ... }
})

watcher.on('error', console.error.bind(console))

// start watching, callback is optional
watcher.start(function(err) {
  if (err) throw err
  console.log(watcher.running) // true
})

// insert, update, delete rows in your db...

// stop watching, callback is optional
watcher.stop(function () {})

TODO

there is certainly stuff to do ;-)

Tests

You need to give it a database connection string to be able to run the tests.

POSTGRES=postgres://postgres@localhost:5432/postgres npm test

License

MIT

About

👓 Watch your PostgreSQL tables for changes

Resources

Stars

Watchers

Forks

Packages

No packages published