Awesome
sequelize-cockroachdb
This NPM package makes Sequelize compatible with CockroachDB.
Learn how to build a Node.js app with CockroachDB.
Please file bugs against the sequelize-cockroachdb project
Requirements
This package needs Node.js v12 or later
Setup and run tests
First make sure you have CockroachDB installed. You can run cockroach version
to see if is installed or you can download here
Run cockroach start-single-node --insecure --logtostderr
to start the database. If this returns ERROR: cockroach server exited with error: unable to lookup hostname
run with --host localhost
flag.
Run cockroach sql --insecure
to enter in SQL mode and type CREATE DATABASE sequelize_test;
Then install the depedencies with npm i
and npm test
to run all tests
Limitations
Dealing with transactions
From the docs
CockroachDB guarantees that while a transaction is pending, it is isolated from other concurrent transactions with serializable isolation.
Which means that any other query made in another connection to the same node will hang.
For example:
const t = await this.sequelize.transaction();
await this.User.create({ name: "bob" }, { transaction: t });
await this.User.findAll({ transaction: null }); // Query will hang!
CockroachDB does not support yet:
See tests/model_create_test.js
to browse those implementations.