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

时间:2016-05-23 16:19:27

标签: sequelize.js

Sequelize支持五种DBMS。在我的项目中,我们有一个位于IBM DB2中的遗留数据库,该数据库不在该列表中。存在node driver for DB2,由IBM发布。

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

2 个答案:

答案 0 :(得分:4)

根据v4.0.0的最新版本如果你使用除了五种指定方言以外的任何东西,它将引发错误,你可以改变驱动程序但不能改变方言。 所以你不能这样做 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.');
  }

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

答案 1 :(得分:0)

Db2正在添加Sequelize支持。您可以在以下分支看到进度/测试版:https://github.com/ibmdb/sequelize

(视您何时阅读而定,可能已完成,因此请查看Sequelize网站:http://docs.sequelizejs.com/

有人告诉我,2019年2月左右是计划首次正式发布非beta版本。对Cloud Lite /免费计划上的Db2进行了测试,它在基本测试用例中都可以正常工作。