github sequelize/sequelize v7.0.0-alpha.40

latest release: v6.37.3
pre-release18 days ago

7.0.0-alpha.40 (2024-04-11)

Highlights

  • Dialects have been moved to their own packages. Please see our upgrade guide to see how to initialize Sequelize

Bug Fixes

Features

  • add ModelRepository#_UNSTABLE_bulkDestroy and manual ON DELETE handling (#17078) (45ac01a)
  • cli: create @sequelize/cli as a replacement for sequelize-cli (#17195) (ec00aed)
  • cli: add seed generate command (#17262) (b07ad40)
  • db2: move db2 to the @sequelize/db2 package (#17197) (6aa4ced)
  • move postgres to the @sequelize/postgres package (#17190) (721d560)
  • mssql: upgrade to tedious 18 (#17137) (65e19a1)
  • type options per dialect, add "url" option, remove alternative Sequelize constructor signatures (#17222) (b605bb3)
  • mssql: move mssql to the @sequelize/mssql package (#17206) (8631f5a), closes #17206
  • ibmi: move ibmi to the @sequelize/db2-ibmi package (#17209) (21772a5), closes #17209
  • mysql: move mysql to the @sequelize/mysql package (#17202) (5c7830e), closes #17202
  • mariadb: move mariadb to the @sequelize/mariadb package (#17198) (46ea159), closes #17198

BREAKING CHANGES

  • db2, ibmi, snowflake and sqlite do not accept the url option anymore
  • The sequelize constructor only accepts a single parameter: the option bag. All other signatures have been removed.
  • Setting the sequelize option to a string representing a URL has been replaced with the "url" option.
  • The dialectOptions option has been removed. All options that were previously in that object can now be set at the root of the option bag, like all other options.
  • All dialect-specific options changed. This includes at least some credential options that changed.
  • Which dialect-specific option can be used is allow-listed to ensure they do not break Sequelize
  • The sequelize pool is not on the connection manager anymore. It is now directly on the sequelize instance and can be accessed via sequelize.pool
  • The sequelize.config field has been removed. Everything related to connecting to the database has been normalized to sequelize.options.replication.write (always present) and sequelize.options.replication.read (only present if read-replication is enabled)
  • sequelize.options is now fully frozen. It is no longer possible to modify the Sequelize options after the instance has been created.
  • sequelize.options is a normalized list of option. If you wish to access the options that were used to create the sequelize instance, use sequelize.rawOptions
  • The default sqlite database is not ':memory:' anymore, but sequelize.sqlite in your current working directory.
  • Setting the sqlite database to a temporary database like ':memory:' or '' requires configuring the pool to behave like a singleton, and disallowed read replication
  • The match option is no longer supported by sequelize.sync. If you made use of this feature, let us know so we can design a better alternative.
  • The dialectModulePath has been fully removed to improve compatibility with bundlers.
  • The dialectModule option has been split into multiple options. Each option is named after the npm library that is being replaced. For instance, @sequelize/postgres now accepts pgModule. @sequelize/mssql now accepts tediousModule
  • Instead of installing the pg package, users need to install @sequelize/postgres.
  • Instead of installing the tedious package, users need to install @sequelize/mssql.
  • Instead of installing the odbc package, users need to install @sequelize/db-ibmi.
  • Instead of installing mysql2, users need to install @sequelize/mysql.
  • Instead of installing the mariadb package, users need to install @sequelize/mariadb.
  • Instead of installing the ibm_db package, users need to install @sequelize/db2.
  • Instead of installing the snowflake-sdk package, users need to install @sequelize/snowflake.

Don't miss a new sequelize release

NewReleases is sending notifications on new releases.