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



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

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

根据最新的 v4.0.0 如果您使用五种指定方言以外的任何内容,它将引发错误,您可以更改驱动程序,但不能更改方言。1.So 你做不到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

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

(根据您阅读本文的时间,它可能已经完成,因此请查看Sequelize网站:http://docs.sequelizejs.com/)

我被告知在 2019 年 2 月左右是计划发布第一个正式非测试版的时候。在 Db2 on Cloud Lite/免费计划上运行了测试,它对于基本测试用例运行良好。

最新更新