Registry / database / moleculer-db-adapter-sequelize

moleculer-db-adapter-sequelize

JSON →
library0.3.0jsnpmunverified

Sequelize adapter for Moleculer DB service, providing SQL database support (Postgres, MySQL, SQLite, MSSQL) for microservice architectures. Current version 0.3.0, maintained by MoleculerJS team. Integrates seamlessly with moleculer-db, supporting both Sequelize v5 and v6. Requires manual installation of database-specific drivers. TypeScript declarations included. Simpler than using raw Sequelize with Moleculer by providing adapter pattern and model definition in service schema.

npm install moleculer-db-adapter-sequelize
INSTALL
IMPORT
SIG · MOLECULER-DB-ADAPT
M
moleculer-db-adapter-sequelize
databasejavascriptv0.3.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

SqlAdapter
const SqlAdapter = require('moleculer-db-adapter-sequelize');
const { SqlAdapter } = require('moleculer-db-adapter-sequelize');
Default export; named import will result in undefined.
SqlAdapter
import SqlAdapter from 'moleculer-db-adapter-sequelize';
ESM default import works correctly in Node >=22 with ES modules enabled.
Sequelize
const Sequelize = require('sequelize');
const Sequelize = require('sequelize').Sequelize;
Sequelize default export is the class; no need to destructure.
DbService
const DbService = require('moleculer-db');
const { DbService } = require('moleculer-db');
moleculer-db exports DbService as default. Named export will result in undefined.

Creates a Moleculer service with Sequelize adapter using SQLite in-memory database and shows basic create/find operations.

const { ServiceBroker } = require('moleculer'); const DbService = require('moleculer-db'); const SqlAdapter = require('moleculer-db-adapter-sequelize'); const Sequelize = require('sequelize'); const broker = new ServiceBroker(); broker.createService({ name: 'posts', mixins: [DbService], adapter: new SqlAdapter('sqlite://:memory:'), model: { name: 'post', define: { title: Sequelize.STRING, content: Sequelize.TEXT, votes: Sequelize.INTEGER, author: Sequelize.INTEGER, status: Sequelize.BOOLEAN }, options: {} }, }); broker.start() .then(() => broker.call('posts.create', { title: 'My first post', content: '...', votes: 0 })) .then(() => broker.call('posts.find').then(console.log)) .catch(err => console.error(err));
Debug
Known issues
breakingNode.js >=22 required for this adapter version (0.3.0).
fix
Upgrade Node.js to v22+ or use an older adapter version (e.g., 0.2.x) with Node 18.
affects: >=0.3.0
deprecatedSequelize v5 support is deprecated; Sequelize v6 is recommended.
fix
Use sequelize ^6.7.0 or later; update model definitions accordingly (e.g., no need for db.Model).
affects: >=0.1.0
gotchaAdapter constructor passes all arguments directly to Sequelize constructor; incorrect arguments will cause connection failures.
fix
Consult Sequelize documentation for valid constructor arguments (URI string or (database, username, password, options)).
affects: *
gotchaDatabase-specific driver packages are not automatically installed; missing driver results in runtime error.
fix
Install required driver: sqlite3, mysql2, mariadb, pg (and pg-hstore), or tedious.
affects: *
gotchaThe model's 'name' property must match the table name; Sequelize automatically pluralizes it by default.
fix
Set freezeTableName: true in model options to disable pluralization.
affects: *
Errors
Common errors & fixes
Cannot find module 'sequelize'
Sequelize is a peer dependency and not automatically installed.
fix
Run `npm install sequelize`.
SqlAdapter is not defined
Using named import but SqlAdapter is default export.
fix
Use `const SqlAdapter = require('moleculer-db-adapter-sequelize');` (no destructuring).
Dialect needs to be explicitly supplied as of v6
Sequelize v6 requires explicit 'dialect' option when using connection URI without protocol.
fix
Add dialect: 'mysql' (or appropriate) in options object, or use URI like 'mysql://...'.
Cannot read property 'define' of undefined
Model definition missing 'define' property or misconfigured schema.
fix
Ensure model object includes 'define' with valid Sequelize attribute definitions.
Upgrade
Version history
0.3.0latest on npm
Audit
Dependencies
sequelizerequiredRequired ORM library; must be installed separately as peer dependency.
moleculerrequiredRequired microservice framework; peer dependency for full integration.
Agent activity
2 hits · last 30 days
node
2
Resources
moleculer-db-adapter-sequelize — npm install moleculer-db-adapter-sequelize · libregistry