【问题标题】:Sequelize dialect dependency on msnodesqlv8续集方言依赖于 msnodesqlv8
【发布时间】:2022-11-11 02:04:11
【问题描述】:

我们正在使用 sequelize 包连接到 mssql 服务器。我们的后端代码是 javascript。

我们有一个如下的工作代码:

const sequelize = new Sequelize({
  logging:log,
  dialect:'mssql',
  dialectModulePath: 'msnodesqlv8/lib/sequelize'
  dialectOptions:{
   connectionString: process.env.connectionString,
   encrypt: false
  },
  operatorAliases: false
})

下面是我们在上面的 sn-p 中使用的 connectionString 的格式:

Driver={ODBC Driver 17 for SQL Server}; Server=<<Servername>>;Database=<<Database>>;Trusted_Connection=yes;

在 package.json 我可以看到以下 3 个包:

"msnodesqlv8":"^2.4.7",
"sequelize":"^4.41.2",
"sequelize-msnodesqlv8":"^0.2.6-beta.8"

在 sequelize 的官方文档中,我可以看到

const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect:'mssql',
  operatorsAliases: false,

  pool: {
    max: 5,
    min: 0,
    acquire: 30000,
    idle: 10000
  },

  // SQLite only
  storage: 'path/to/database.sqlite'
});

没有提到msnodesqlv8。现在连接工作正常。但我只是想了解 sequelize 是否在幕后使用繁琐,以便拥有适当的驱动程序,以便可以建立与 DB 的连接。那么msnodesqlv8有什么用呢?

msnodesqlv8 官方文档中,我可以看到它具有一些增强的安全功能。

我想通过理解这一点来实现什么?

我想从msnodesqlv8 中删除我的代码的依赖关系,并且sequelize for mssql 的官方文档中提供的sn-p 对我不起作用。

删除msnodesqlv8 的依赖的原因是什么?

我们正在将代码迁移到 linux,msnodesqlv8 与 linux 兼容,后者依赖于需要单独安装的 msodbcsql17 驱动程序。

【问题讨论】:

  • 好的。所以在浏览了很多文章之后,我的理解是,纯javascript的繁琐不具备集成安全性。因此这里出现了像msnodesqlv8 这样的包,它提供了驱动程序以确保sequelize 的正常工作。但似乎 msnodesqlv8 依赖于需要单独安装的msodbcsql17。如果我在某个地方错了,任何对此有一些想法的人都想纠正我?

标签: javascript node.js sql-server sequelize.js odbc


【解决方案1】:

在经历了今天切换到 msnodesqlv8 驱动程序的痛苦之后,我觉得我应该对此发表评论......不幸的是,我的代表还不够高,无法发表评论,所以你得到了答案:)

  1. 你是对的,很多人似乎都在使用 msnodesqlv8 驱动程序来实现集成安全方面。

  2. 我确实依赖于 msodbcsql17(一定不要尝试 msodbcsql18)。这种依赖很难实现。警告词.. 尝试在基于 debian 的 docker 映像中使用它会导致段错误。我们切换到基于 alpine 并清除了段错误。

  3. 我在任何地方都没有提到的是使用 msnodesqlv8 获得的显着性能改进。小例子,我们有一个简单的查询(使用 JDBC 驱动程序需要 0.3 秒执行,另一个需要 0.3 秒返回 29000 <1kb 行),使用繁琐需要 58 秒。那是直接使用乏味的(不是通过sequelize或mssql for node)。几乎所有时间都在读取结果流。切换到 msnodesqlv8 将时间减少到 2 秒以下。

    摘要:安装痛苦。某些工作负载的性能要好得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 2016-03-12
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    相关资源
    最近更新 更多