Skip to content

cockroachdb/sequelize-cockroachdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jan 12, 2022
188f092 · Jan 12, 2022
Jan 12, 2022
Sep 22, 2017
Jan 11, 2022
Jan 12, 2022
Apr 28, 2021
Oct 25, 2020
Oct 25, 2020
Mar 23, 2017
Oct 25, 2020
Apr 28, 2021
Apr 28, 2021
Jan 12, 2022
Mar 8, 2017
Apr 16, 2021
Jan 12, 2022

Repository files navigation

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.