Sequelize
sequelize.org- Category
- Developer Tools
- Rank
- No. 2770Tools index
Previous survey · No. 2640 ·
- Pricing
- Open Source
- Type
- TOOL
- Use case
- Coding
- Interfaces
- SDK
- Builder
- sequelize
- GitHub
- 30.3k stars
- Latest release
- v6.37.8
- Date
About
Promise-based Node.js ORM. Long-standing Node ORM for Postgres, MySQL, MariaDB, SQLite, and SQL Server. Predates TypeScript-first ORMs but still widely used.
What it does
An object-relational mapper for JavaScript servers: you define models as classes, and it writes the queries, joins related rows and manages transactions against the database behind them. One core library holds models, associations, transactions and a structured error hierarchy, while each database engine ships as its own connector package. That list runs to nine engines, including Snowflake, Oracle, IBM Db2 and Db2 for IBM i, alongside the usual open-source ones. A companion command-line tool handles project tasks.
Why it's ranked here
Breadth and a permissive license carry the case. MIT licensed, with a connector for nine database engines, and a test suite wired to run unit and integration tests against every one of them, plus a native Postgres variant. The weight on the other side is momentum: the next major version is still an alpha, both it and the older stable line are listed as supported for security fixes, and the README openly recruits new maintainers to finish it.
What's good
The error model is unusually specific. Instead of one generic failure, the core exports distinct errors for unique and foreign key constraint violations, optimistic lock conflicts, connection timeouts, refused connections, unreachable hosts and pool acquire timeouts, so calling code can react to each case. Transactions expose nesting modes, isolation levels and locks directly. Every package ships both CommonJS and ES module builds with type declarations. The repository keeps scripts to start the oldest and latest supported release of each database locally, so contributors can check behaviour at both ends of the supported range.
Tradeoffs
The project states its support policy as time-permitting, and the README asks for new maintainers to finalize the next major version. That version is published as an alpha, so new projects choose between the stable line and a moving target with an upgrade guide between them. The alpha core requires Node 22.18 or 24 and later, which rules out older runtimes. Several connectors depend on native builds, including the IBM, Oracle, SQLite and native Postgres drivers, which can complicate installs on locked-down or unusual platforms.
How to use it well
Pick it when an application must talk to an enterprise database such as Oracle, Snowflake or Db2 from JavaScript, or when an existing codebase already uses it. For a new project, decide deliberately between the stable line and the alpha, and read the upgrade guide first. Install only the connector for the engine you run, since each ships separately. Catch the specific constraint and connection errors rather than a generic one. Project tooling is a separate command-line install, not part of the core library.
Technical notes+
The repository is a Yarn workspaces monorepo driven by Lerna and Nx (package.json), with one package per dialect under packages/. packages/core/package.json declares a CommonJS package with conditional exports for import and require, a separate decorators-legacy entry, an explicitly unstable _non-semver-use-at-your-own-risk_ subpath, and engines of ^22.18.0 || >=24.0.0. packages/core/src/index.mjs re-exports the CommonJS build as named ESM exports, including Transaction, TransactionNestMode, IsolationLevel, Lock, Op, DataTypes and the error classes. packages/postgres/src/index.ts is a generated barrel over the connection manager, dialect, query generator and query interface, and packages/postgres/package.json depends on pg, pg-hstore and wkx. packages/core/src/associations/index.ts defines before and after associate event payloads. package-support.json declares a time-permitting response.
Observed
- License
- MIT (LICENSE)
- Language
- TypeScript and JavaScript
- Packaging
- npm packages: a core package plus one connector package per database, and a separate CLI package
- Supported databases
- Postgres, MySQL, MariaDB, SQLite, Microsoft SQL Server, Snowflake, Oracle, Db2, Db2 for IBM i
- Module formats
- CommonJS and ES modules, with type declarations (packages/core/package.json)
- Interfaces
- Library API plus a command-line tool (packages/cli/README.md)
- Runtime requirement
- Node ^22.18.0 or >=24.0.0 for the alpha core (packages/core/package.json)
- Support policy
- Time-permitting response (package-support.json)
- Test setup
- Mocha unit and integration suites runnable per database dialect
Read from README.md, package.json, LICENSE, SECURITY.md, package-support.json, packages/core/README.md, packages/core/package.json, packages/core/src/index.mjs, packages/postgres/package.json, packages/postgres/src/index.ts, packages/core/src/associations/index.ts, packages/cli/README.md.
Tags
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.