如何创建一个新的Sequelize方言,例如DB2

bge*_*rth 11 sequelize.js

Sequelize支持五种DBMS.在我的项目中,我们有一个位于IBM DB2中的遗留数据库,该数据库不在该列表中.IBM发布了DB2节点驱动程序.

  1. 是否有关于如何为Sequelize创建这样一种新方言的文档?
  2. 是鼓励吗?

小智 5

根据最新的 v4.0.0,如果您使用五种指定方言以外的任何东西,它会抛出错误,您可以更改驱动程序,但不能更改方言。1.所以你不能这样做 2.不鼓励这样做

      var Dialect;
  // Requiring the dialect in a switch-case to keep the
  // require calls static. (Browserify fix)
  switch (this.getDialect()){
    case 'mariadb':
      Dialect = require('./dialects/mariadb');
      break;
    case 'mssql':
      Dialect = require('./dialects/mssql');
      break;
    case 'mysql':
      Dialect = require('./dialects/mysql');
      break;
    case 'postgres':
      Dialect = require('./dialects/postgres');
      break;
    case 'sqlite':
      Dialect = require('./dialects/sqlite');
      break;
    default:
      throw new Error('The dialect ' + this.getDialect() + ' is not supported. Supported dialects: mariadb, mssql, mysql, postgres, and sqlite.');
  }
Run Code Online (Sandbox Code Playgroud)

https://github.com/sequelize/sequelize/blob/3e5b8772ef75169685fc96024366bca9958fee63/lib/sequelize.js#L91